解决hash碰撞问题

线性探测法:

链表法:

腾讯的一道笔试题

已知一个线性表(38,25,74,63,52,48),采用的散列函数为H(Key)=Key%7,将元素散列到表长为7的哈希表中存储。若采用线性探测的开放定址法解决冲突,则在该散列表上进行等概率成功查找的平均查找长度为 ____ ;

若利用拉链法解决冲突,则在该散列表上进行等概率成功查找的平均查找长度为 ____

线性探测法:

38 25 74 63 52 48
3     4   4   0   3    6
38  插入位置3      , 查找1次。
25  插入位置4,     查找1次。
74 位置4碰撞,探测位置5,插入位置5, 查找2次。
63 无   插入位置0, 查找1次。
52  位置3 碰撞,探测位置4,探测位置5,探测位置6,插入位置6,查找4次。
48 位置6碰撞,探测位置0,探测位置1,插入位置1, 查找3次。

共1+1+2+1+4+3 次 平均2次

链表法:

将74链接到25后面   52 链接到38后面

共1+1+2+1+2+1次




你可能感兴趣的:(解决hash碰撞问题)