设关键字序列是(19, 24, 23, 17, 38, 04, 27, 51, 31, 34, 69),散列表长度是11,散列函数是H(key)=key MOD 11, ① 采用开放地址法的线性探测方法解决冲突,请构造该关键字序列的哈希表。 ② 求出在等概率情况下,该方法的查找成功和不成功的平均查找长度ASL。
时间: 2024-04-24 14:22:45 浏览: 119
1. 采用开放地址法的线性探测方法解决冲突,请构造该关键字序列的哈希表。散列表长度是11,散列函数是H(key)=key MOD 11。
首先,我们需要创建一个长度为11的哈希表,将所有的元素都插入到哈希表中。插入的过程中,如果发生冲突,就使用线性探测的方式,从下一个位置开始依次往后查找,直到找到一个空闲位置插入为止。
以下是哈希表构造的过程:
|索引|关键字|
|---|---|
|2 |19 |
|3 |24 |
|4 |23 |
|6 |17 |
|0 |38 |
|4 |04 |
|5 |27 |
|7 |51 |
|9 |31 |
|10 |34 |
|2 |69 |
发现4和2位置发生了冲突,因此在插入04的时候,从5位置开始往后寻找,找到了一个空闲的位置4插入。在插入69的时候,从2位置开始往后寻找,找到了一个空闲的位置10插入。最后的哈希表如下:
|索引|关键字|
|---|---|
|0 |38 |
|1 | |
|2 |19 |
|3 |24 |
|4 |23 |
|5 |27 |
|6 |17 |
|7 |51 |
|8 | |
|9 |31 |
|10 |34 |
2. 求出在等概率情况下,该方法的查找成功和不成功的平均查找长度ASL。
在等概率情况下,每个元素被散列到哈希表的每个位置的概率都是相等的。因此,对于长度为n的哈希表,查找成功的平均查找长度ASLs和查找不成功的平均查找长度ASLu分别为:
ASLs = (1/11)*(1+2+3+4+5+6+7+8+9+10+11) = 6
ASLu = (1/11)*(1+2+3+4+5+6+7+8+9+10+11) = 6
因此,采用开放地址法的线性探测方法解决冲突时,在等概率情况下,无论是查找成功还是查找不成功,平均查找长度都是6。
阅读全文