双散列

雙雜湊(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)

  • 还没有评论,来抢沙发吧。