题目:已知关键字序列为(4,15,38,49,33,60,27,71),哈希函数为H(key)=key mod 11设哈希表HT的长度为11.采用二次探测再散列法解决冲突,构造的哈希表在等概率下查找成功时的平均查找长度。
4:4%11=4,其地址为4,比较次数1次;
15:15%11=4,发生冲突;采用二次探测:(4+1)%11=5,比较次数2次;
38:38%11=5,发生冲突;(5+1)%11=6,比较次数2次;
49:49%11=5,发生冲突;(5+1)%11=6,(5-1)%11=4,(5+2^2)%11=9,比较4次;
33:33%11=0,比较1次;
60:66%11=5,(5+1)%11=6,(5-1)%11=4,(5+2^2)%11=9,(5-2^2)=1,比较5次;
27:27%11=5, (5+1)%11=6,(5-1)%11=4,(5+2^2)%11=9,(5-2^2)=1,(5+3^2)%11=3;比较6次;
71:71%11=5,(5+1)%11=6,(5-1)%11=4,(5+2^2)%11=9,(5-2^2)=1,(5+3^2)%11=3,(5-3^2)%11=-4,出现负值时,将负值+表长(-4+11)=7,比较7次;
地址 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
关键字 |
33 |
60 |
27 |
4 |
15 |
38 |
71 |
49 | |||
比较次数 |
1 |
5 |
6 |
1 |
2 |
2 |
7 |
4 |
成功时的平均查找长度:(1+5+6+1+2+2+7+4)/8=3.5