Python中set()的运行时间

7 投票
1 回答
4202 浏览
提问于 2025-04-15 20:01

我在想,查找一个集合(set())的时间复杂度是 O(1) 还是 O(n) 呢?

如果我有:

x = set()

那么下面这段代码的运行时间是多少呢:

如果 "a" 在 x 里面:

打印 "a 在集合里!"

1 个回答

12

set 是通过一种叫做哈希的方式来实现的,这样查找的速度通常是接近 O(1) 的。也就是说,查找的时间几乎是固定的,不会随着数据量的增加而变慢。不过在最糟糕的情况下,如果有 n 个对象的哈希值发生了冲突,那么查找的时间就会变成 O(n),也就是查找的时间会随着对象数量的增加而增加。

撰写回答