设哈希表HT表长m为13,哈希函数为H(k)=k MOD m,给定的关键值序列为{19,14,23,10,68,20,84,27,55,11}。试求出用线性探测法解决冲突时所构造的哈希表,并求出在等概率的情况下查找成功的平均查找长度ASL。
时间: 2023-04-02 22:00:20 浏览: 521
haxibiao.rar_MOD_哈希表 平均查找长度
5星 · 资源好评率100%
根据给定的哈希函数H(k)=k MOD m,将关键值序列{19,14,23,10,68,20,84,27,55,11}插入哈希表中,使用线性探测法解决冲突。如果插入时发现冲突,就向后依次查找空闲位置,直到找到空闲位置为止。如果查找到表尾还没有找到空闲位置,就从表头继续查找,直到找到空闲位置为止。
插入19时,H(19)=6,插入到表中下标为6的位置;
插入14时,H(14)=1,插入到表中下标为1的位置;
插入23时,H(23)=10,插入到表中下标为10的位置;
插入10时,H(10)=10,发生冲突,向后查找,插入到表中下标为11的位置;
插入68时,H(68)=8,插入到表中下标为8的位置;
插入20时,H(20)=7,插入到表中下标为7的位置;
插入84时,H(84)=11,插入到表中下标为11的位置;
插入27时,H(27)=1,发生冲突,向后查找,插入到表中下标为2的位置;
插入55时,H(55)=3,插入到表中下标为3的位置;
插入11时,H(11)=11,发生冲突,向后查找,插入到表中下标为12的位置。
最终构造的哈希表为:{14, 19, 27, 55, 68, 20, 84, null, 10, null, 23, 11, null}。
在等概率的情况下查找成功的平均查找长度ASL为:
ASL = (1/10)*(1+2+3+4+5+6+7+8+9+10) = 5.5。
阅读全文