计数功能的运行时复杂性

时间:2013-02-25 02:15:10

标签: python list complexity-theory

def findTarget(myList, target):

    count = 0

    for item in myList:

         if (target == item):

              count = count + 1

    return count

我被告知这是0(日志)n 虽然我相信这是0(1)?有人可以确认还是否认?

2 个答案:

答案 0 :(得分:7)

你的循环有N个比较且少于N个加法 - 最多可以进行2 * N次操作,从而为你提供O(N)算法。

请注意,对于列表,这是一个内置方法:

myList.count(item)

会将循环推送到C代码 - 它仍然是O(N),但我敢打赌,该版本将比你的版本运行更快:)。

答案 1 :(得分:2)

循环为O(n),其中nmyList的长度。