gpt4 book ai didi

python - 路口复杂度

转载 作者:太空狗 更新时间:2023-10-29 17:22:48 26 4
gpt4 key购买 nike

在 Python 中,您可以获得两个集合的交集:

>>> s1 = {1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> s2 = {0, 3, 5, 6, 10}
>>> s1 & s2
set([3, 5, 6])
>>> s1.intersection(s2)
set([3, 5, 6])

有人知道这个交集(&)算法的复杂度吗?

编辑:另外,有谁知道 Python 集合背后的数据结构是什么?

最佳答案

集合背后的数据结构是一个hash table其中典型性能是分摊的 O(1) 查找和插入。

intersection algorithm精确地循环 min(len(s1), len(s2)) 次。它在每个循环中执行一次查找,如果匹配则执行插入。在纯 Python 中,它看起来像这样:

    def intersection(self, other):
if len(self) <= len(other):
little, big = self, other
else:
little, big = other, self
result = set()
for elem in little:
if elem in big:
result.add(elem)
return result

关于python - 路口复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8102478/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com