(5)设哈希表的地址范围为 0~17,哈希函数为:H(key)=key%16。用线性探测法处理冲突,输入关键字序列:(10,24,32,17,31,30,46,47,40,63,49),构造哈希表,试回答下列问题:
① 画出哈希表的示意图;
② 若查找关键字 63,需要依次与哪些关键字进行比较?
③ 若查找关键字 60,需要依次与哪些关键字比较?
④ 假定每个关键字的查找概率相等,求查找成功时的平均查找长度。解: (1)画表如下:
0
1
2
3
4
5
6
7
8
9
10
11 12
13
14
15
16
17
32
17
63
49
24
40
10
30
31
46
47
(2) 31,46,47,32,17,63 相比,一共比较了 6 次!
(3)查找 60,首先要与 H(60)=60%16=12 号单元内容比较,但因为 12 号单元为空,所以应当只比较这一次即可。
(4) ASL=1/11(6+2+3×3+6)=23/11
(6)设有一组关键字(9,01,23,14,55,20,84,27),采用哈希函数:H(key)
=key %7 ,表长为 10,用开放地址法的二次探测法处理冲突。要求:对该关键字序列构造哈希表,并计算查找成功的平均查找长度。
散列地址
0
1
2
3
4
5
6
7
8
9
关键字
14
01
9
23
84
27
55
20
比较次数
1
1
原创力文档

文档评论(0)