已知有长度为9的表 (16, 29, 32, 5, 89,41, 14, 65, 34),它们存储在一个哈希表中,利用线性探测再散列法,要求它在等概率情况下查找成功的平均查找长度不超过了。 口(1)该哈希表的长度m应设计成多大? 口 (2)设计相应的哈希函数 口(3) 将数据填入到哈希表中 口(4) 计算查找成功时的平均查找长度
时间: 2023-07-15 14:13:26 浏览: 114
(1) 根据装填因子α=9/m,我们希望平均查找长度不超过5,则根据公式:
E(n) = (1 + 1/(1-α))/2 <= 5
解得 m >= 14.25,因此哈希表的长度至少应该为15。
(2) 一个简单的哈希函数可以是取模函数,即 h(k) = k mod m,其中k为关键字,m为哈希表长度。
(3) 将数据填入哈希表中,可以按照以下步骤进行:
- 初始化哈希表,将所有位置都赋初值为空。
- 对于表中的每个元素,计算其哈希值h(k),并将其插入哈希表中。
- 如果哈希表中h(k)位置已经被占用,则使用线性探测再散列法,查找下一个空位插入元素。
根据取模函数,可以将表中的元素插入到哈希表中的位置:
h(16) = 1, h(29) = 14, h(32) = 2, h(5) = 5, h(89) = 14, h(41) = 11, h(14) = 14, h(65) = 5, h(34) = 4
由于哈希表长度为15,因此哈希值相同的元素需要使用线性探测再散列法插入到下一个空位。
(4) 计算查找成功时的平均查找长度,可以使用公式:
ASL = Σ(di+1)/n
其中di为查找成功时需要查找的次数。我们可以使用线性探测的方法来查找元素,因此di最大为哈希表长度m,平均查找长度ASL不超过5,则可得到以下不等式:
Σ(m+1)/9 <= 5
解得 m >= 52.5,因此哈希表的长度至少应该为53。
将表中的元素插入到哈希表中后,可以计算出查找成功时的平均查找长度:
ASL = (1+2+1+1+3+1+1+2+1)/9 = 1.44
因此,在等概率情况下,查找成功的平均查找长度不超过1.44。
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)