avi*_*hah 5 algorithm tree hash hashtable data-structures
哈希表总是比树快吗?虽然Hashtables具有O(1)搜索复杂度但是假设由于设计错误的哈希函数发生了大量冲突,并且如果我们使用链式结构(比如平衡树)处理冲突,那么搜索的最坏情况运行时间将是O(log n) ).因此,即使在最坏情况下哈希表总是比树更快,我能否得出大或小数据集的结论?此外,如果我有足够的内存,我不想要范围搜索,我可以总是去哈希表吗?
ami*_*mit 9
哈希表总是比树快吗?
不,不总是.这取决于许多因素,例如集合的大小,散列函数,以及一些散列表实现 - 还有删除操作的数量.
散列表平均O(1)每个操作- 但情况并非总是如此.他们可能是在最坏的情况下.O(n)
O(1)
O(n)
我现在可以想到更喜欢树木的一些原因:
但是 - 如果数据很大,延迟不是问题而且冲突是不可能的 - 哈希表比使用树更渐进.
归档时间:
13 年,9 月 前
查看次数:
3958 次
最近记录: