Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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_Algorithm - Fatal编程技术网

设置python最坏情况的复杂性

设置python最坏情况的复杂性,python,algorithm,Python,Algorithm,在python中对集合执行以下操作:s中的x;其中s是一个集合,has 平均情况:O(1),最坏情况:O(n) 有人能解释一下这些复杂性吗?它是作为一个整体实现的 哈希表(具有正确维护的加载因子)的平均情况为O(1),因为检查元素是否在列表中所需的预期操作数是恒定的,您只需对元素进行哈希,在所需位置访问该表,检查bin,它包含具有相同哈希值的所有元素,但这些元素的预期值是一个常数,取决于加载因子1 但是,在最坏的情况下,所有元素都具有相同的哈希值。这导致当需要检查元素是否在集合中时,它需要遍历整

在python中对集合执行以下操作:
s中的x
;其中s是一个集合,has

平均情况:O(1),最坏情况:O(n)

有人能解释一下这些复杂性吗?

它是作为一个整体实现的

哈希表(具有正确维护的加载因子)的平均情况为
O(1)
,因为检查元素是否在列表中所需的预期操作数是恒定的,您只需对元素进行哈希,在所需位置访问该表,检查bin,它包含具有相同哈希值的所有元素,但这些元素的预期值是一个常数,取决于加载因子1

但是,在最坏的情况下,所有元素都具有相同的哈希值。这导致当需要检查元素是否在集合中时,它需要遍历整个集合(位于一个箱子中),这基本上是一个线性扫描,是
O(n)

注:上面解释了哈希表,但其思想与


(1) 例如,如果负载系数为1/2,则表示所需地址中没有元素的概率为1/2。一个元素(恰好)在箱子中的概率是1/4,该箱子中正好有两个元素的概率是1/8,。。。。

通过对上述内容求和,您可以得到料仓中预期的元素数为1/2+1/4+1/8+@MattHolbrook Bull@VatsalMahajan首先查看常见问题,以了解该网络工作的总体情况。除了保持声音低沉和干净,我们都必须相互尊重。在某些情况下,马特是对的,但不是关于家庭作业本身,而是关于你的问题和适合在这里发表的问题之间的差异。这些问题不会得到回答,但会及时被删除。相关:现在想象一下,插入值时,散列值都映射到同一个插槽。很多。然后测试集合中是否有一个这样的值。集合使用与字典相同的底层数据结构(哈希表),所以我骗了你一个关于字典的问题。@Marvin Emil Brach好的,谢谢