计算我的函数大

时间:2017-03-03 14:47:03

标签: python algorithm big-o

我正在学习Big O,需要帮助计算我的函数的大O.

如果自我大小为s而其他大小为o

,我需要找出大O.

我不确定调用has函数的复杂性,因为我知道交集中的for循环将是S的复杂性

但是has()的复杂性是否大小为o?因为id想象它必须循环遍历o直到找到匹配或返回false。

自我和其他正在使用的数据类型是正面和负面的整数

 def has(self, item):

        return item in self.items

    def intersection(self, other):
        common = Set()
        for item in self.items:
            if other.has(item):
                common.add(item)
        return common

1 个答案:

答案 0 :(得分:1)

检查值是否在列表中的时间复杂度为O(n)(它必须循环)。检查值是否在集合中的时间复杂度为O(1) - 它将计算哈希并检查集合中是否存在该哈希值。您可以编写自己的类来实现in,其中时间复杂度与您自己的实现相关。如果不知道other的定义,则无法回答此问题。