【发布时间】:2018-01-12 04:16:45
【问题描述】:
根据 Cormen 的书,如果哈希函数为
,则线性探测中可能的探测序列数h(k,i) =( h' (k) + i) % m 是 m
如果 h'(k) = k 模 5 和 m = 10,那么我们怎么会有 10 个不同的探针序列?
初始探测由h'(k)决定,所以探测序列的数量应该受h'(k)限制,应该是5对吧?
【问题讨论】:
-
i有什么变化?
根据 Cormen 的书,如果哈希函数为
,则线性探测中可能的探测序列数h(k,i) =( h' (k) + i) % m 是 m
如果 h'(k) = k 模 5 和 m = 10,那么我们怎么会有 10 个不同的探针序列?
初始探测由h'(k)决定,所以探测序列的数量应该受h'(k)限制,应该是5对吧?
【问题讨论】:
i 有什么变化?
CLRS 说:
给定一个普通的散列函数h':U -> {0, 1, ... , m - 1},其中 我们将其称为辅助散列函数,该方法 线性探测使用散列函数
h(k, i) = (h'(k)+i) mod m
对于 i = 0,1, ..., m-1.
Cormen 的意思是 h' 是surjective。否则,以下内容将不正确。
因为初始探针决定了整个探针序列,所以只有m个不同的探针序列
【讨论】: