Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以下使用字典的python代码的时间复杂度是多少?_Python_Performance_Dictionary_Time Complexity - Fatal编程技术网

以下使用字典的python代码的时间复杂度是多少?

以下使用字典的python代码的时间复杂度是多少?,python,performance,dictionary,time-complexity,Python,Performance,Dictionary,Time Complexity,我认为是O(n),但我认为“如果赞美中的赞美”这一行是O(n)而不是O(1),这使得整个程序的复杂性是O(n^2)O(n)-dict的中的是O(1)这意味着我查看的是键集还是值集并不重要。它总是O(1)。字典是作为哈希表实现的,它的搜索时间是常数O(1)不,键是O(1),而不是values@AChampion不,它不会,即使dict.values()是O(1)和O(1)空间,因为它是一个视图,这并不意味着成员资格测试是O(1)。我很确定这是O(N),dicts毕竟只是花哨的散列映射。我怀疑dic

我认为是O(n),但我认为“如果赞美中的赞美”这一行是O(n)而不是O(1),这使得整个程序的复杂性是O(n^2)

O(n)
-dict的
中的
O(1)
这意味着我查看的是键集还是值集并不重要。它总是O(1)。字典是作为哈希表实现的,它的搜索时间是常数O(1)不,键是O(1),而不是values@AChampion不,它不会,即使
dict.values()
是O(1)和O(1)空间,因为它是一个视图,这并不意味着成员资格测试是O(1)。我很确定这是O(N),dicts毕竟只是花哨的散列映射。我怀疑
dict.values()
是否创建了一个值的底层散列集,或者更荒谬的是,创建了一个反向映射,在任何情况下,
dict.values
视图对象都不支持set操作,原因是。。。
def twoSum(self, nums, target):

    compliments = {}
    length = len(nums)

    for i, num in enumerate(nums):
        compliment_of_num = target-num
        if compliment_of_num in compliments:
            return [nums.index(compliment_of_num),i]
        compliments.update({num:compliment_of_num})