4
(何时)哈希表查找为O(1)?
人们通常说哈希表查找是在恒定时间内进行的:您计算哈希值,这将为数组查找提供索引。但这忽略了碰撞。在最坏的情况下,每一项都恰好落在同一存储桶中,并且查找时间变为线性()。Θ(n)Θ(n)\Theta(n) 数据上是否存在可以使哈希表查找真正变为?这是仅是平均水平,还是哈希表可以进行最坏情况查找?O (1 )O(1)O(1)O(1)O(1)O(1)O(1) 注意:我是从程序员的角度出发的;当我将数据存储在哈希表中时,它几乎总是字符串或某些复合数据结构,并且数据在哈希表的生存期内发生变化。因此,尽管我欣赏有关完美哈希的答案,但从我的观点来看,它们很可爱,但很有趣,而且不切实际。 PS跟进:哈希表操作O(1)适用于哪种数据?