题目:已知关键字序列为(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