雙雜湊(Double hashing),是透過兩個雜湊函式來查詢位置。
h_i(k)=(hash_1(k)+i*hash_2(k))
例子:
假設hash_1=k mod 10;hash_2=7-(k mod 7)
h_0(89)=9沒有與第9格衝突,所以被安置到第9格
h_0(18)=8沒有與第8格衝突,所以被安置到第8格
h_0(49)=9與第9格衝突,所以需要h_1
h_1(49)=(9+(7 - 49mod7)) mod 10=6沒有與第6格衝突,所以被安置到第6格
h_0(58)=8與第8格衝突,所以需要h_1
h_1(58)=(8+(7 - 58mod7)) mod 10=3沒有與第3格衝突,所以被安置到第3格
h_0(69)=9與第9格衝突,所以需要h_1
h_1(69)=(9+(7 - 69mod7)) mod 10=0沒有與第0格衝突,所以被安置到第0格
评论 (0)