哈希表与链接搜索时间?

时间:2015-03-01 01:45:22

标签: linked-list hashtable

如果我实现哈希表,我理解插入是在恒定时间内完成的。我也明白,如果没有碰撞,我可以在恒定的时间内找到物品。但是,如果我插入一个项目并使用链接列表在某个任意索引中链接它,它最终位于第2位,但它链接到列表中的3个链接,这是否是O(n)时间,用于搜索?

1 个答案:

答案 0 :(得分:1)

这是对O(n)时间的误解。 Big-O分析与一般情况有关,而不是特定情况。直观地说,想想你的哈希表随着时间的推移做了数千或数百万次查找并退后一步并判断它是否正在做哈希表应该做的事情。

如果你有一个完全退化的哈希表,它将所有内容散列到同一个槽中,那么你将具有O(n)查找性能。

如果n>> m其中n是存储的元素数,m是散列表的大小,您的散列表查找性能将降低到O(n)。

通常,哈希表的性能与平均链长有关。如果此平均值是(小)常量,使得是n的函数,则您具有所需的O(1)查找性能。

相关问题