设有关键字序列,表示为一个线性表{32,13,49,24,38,21,4,12 },散列地址 0~10 ,哈希函数H(K)= 3* K%1 1 ,试用线性探测再散列解决冲突,实现散列存储,画出散列表( 4 分),要求写出求解步骤,并求出查找成功 时 的平均查找长度
(1) 哈希表:
下标 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
关键值 |
| 4 |
| 12 | 49 | 38 | 13 | 24 | 32 | 21 |
|
比较次数 |
| 1 |
| 1 | 1 | 2 | 1 | 2 | 1 | 2 |
|
|
|
|
|
| 38 |
| 24 |
| 21 |
|
|
H(32)=32 *3 %1 1 = 8 H( 13 )= 13*3 %1 1 = 6
H( 49 )= 4 9 *3 %1 1 = 4 H( 24 )= 24*3 %1 1 = 6冲突, H 1 =( 6 +1)%1 1 = 7
H( 3 8)= 3 8 *3 %1 1 = 4 冲突, H 1 =( 4 +1)%1 1 = 5
H( 21 )= 21*3 % 11 = 8 冲突,H 1 =( 8 +1)%1 1 = 9
H(4)=4 *3 %1 1 = 1 H(1 2 )=1 2*3 %1 1 = 3
(2) ASL=( 1*5+2*3 )/ 8 = 11 / 8