【发布时间】:2013-12-13 14:23:45
【问题描述】:
假设哈希表槽的数量(比如 n)与表中元素的数量(比如 m)成正比。我们有 n = O(m), 负载系数 l = O(m)/m = O(1) 所以在Simple Uniform Hashing的假设下,搜索平均需要恒定的时间。这意味着平均搜索所花费的时间与链表的长度成正比,链表的长度对于所有时隙都是相同的,因此是恒定的时间。但是在 Simple Uniform Hashing 假设下的最坏情况运行时间呢?它也是恒定的还是O(1 + l)。请解释我很困惑。 [参考 CLRS 第 260 页]
在简单统一散列的假设下,不成功搜索的最坏情况时间是否与平均情况时间相同。在简单统一散列的假设下,成功搜索的最坏情况时间将不同于平均情况时间。
【问题讨论】:
-
统一散列不足以为您提供良好的最坏情况界限。散列族可以是统一的,而特定函数仍将每个键散列到同一个桶中。如果你能得到一个通用的散列函数,你可以得到
O(logn)的高概率边界:stackoverflow.com/questions/4553624/hashmap-get-put-complexity/…