函数的复杂度 class

Complexity class of a function

如果我的问题不适合这个网站,我深表歉意,但这是我所知道的唯一可以回答计算机科学问题的地方。

对于我的测验,我们被要求计算和简化函数的复杂性 class。我了解大部分概念和所有内容,但我不明白为什么 O(1) 对于行 aset = set(alist) 是不正确的。正确答案应该是 O(N),但我不明白这是为什么。

完整函数如下:

def sum_to_b(alist,asum):
    aset = set(alist)
    for v in alist:
        if asum-v in aset:
            return (v,asum-v)
    return None 

您需要对 'alist' 的每个元素恰好迭代一次(假设它是常规可迭代的)以构建 'aset' 集合。