(5)设哈希表的地址范围为0~17,哈希函数为:H(key)=key%16。用线性探测法处理冲突,输入关键字序列:(10,24,32,17,31,30,46,47,40,63,49),构造哈希表,试回答下列问题: ① 画出哈希表的示意图; ② 若查找关键字63,需要依次与哪些关键字进行比较? ③ 若查找关键字60,需要依次与哪些关键字比较? ④ 假定每个关键字的查找概率相等,求查找成功时的平均查找长度。
时间: 2023-12-07 11:06:08 浏览: 176
输入一组关键字,并建立哈希表的算法(用链地址法来处理冲突)
5星 · 资源好评率100%
好的,我知道了。这是一道关于哈希表和线性探测法的问题。我来一一回答:
① 哈希表示意图如下:
|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|
|-|-|-|-|-|-|-|-|-|-|--|--|--|--|--|--|--|--|
| | | | | | | | | | |10|31|40|17|30|32|46|47|
| | | | | | | | | | |63|24|49| | | | |
| | | | | | | | | | | | | | | | | |
其中,空格表示该位置为空。
② 如果要查找关键字63,需要依次与关键字63所哈希到的位置(H(63)=15)开始,一直到第一个空位置或者找到关键字63为止(如果没有找到,则说明63不在哈希表中)。因此,需要依次比较的关键字为 63、24、49。
③ 如果要查找关键字60,需要依次与关键字60所哈希到的位置(H(60)=12)开始,一直到第一个空位置或者找到关键字60为止(如果没有找到,则说明60不在哈希表中)。因此,需要依次比较的关键字为 40、17、30、32、46、47。
④ 假设每个关键字的查找概率相等(即1/11),查找成功时的平均查找长度为:
```
(1/11)*(1+1+1) + (1/11)*(1+1+1+1+1+1+1+1+1) + (9/11)*(1+1+1+1) = 2.27
```
其中,第一项表示查找关键字10的平均查找长度,第二项表示查找关键字63的平均查找长度,第三项表示查找不在哈希表中的关键字的平均查找长度。
阅读全文