算法导论第11章11.4-1线性探测

利用线性探测法构造哈希表

已知一组关键字为(10,22,31,4,15,28,17,88,59),用开放寻址法插入到一个长度为m=11的散列表中,辅助散列函数为h'(k)=k % m,用线性探查法解决冲突构造这组关键字的散列表。
  解答:为了减少冲突,通常令装填因子α<l(α=(关键字个数n)/(散列表大小m))。这里关键字个数n=9,m=11,此时α≈0.81,散列表为T[0..10],散列函数为:h(key)=key%11。
     由除余法的散列函数计算出的上述关键字序列的散列地址为(10,0,9,4,4,6,6,0,4)。
     前4个关键字插入时,其相应的地址均为开放地址,故将它们直接插入T[10],T[0),T[9]和T[4]中。
     当插入第5个关键字15时,其散列地址4(即h(15)=15%11=4)已被关键字4(15和4互为同义词)占用。故探查h=(4+1)%11=5,此地址开放,所以将15放入T[5]中。

当插入第6个关键字28时,其相应的地址为开放地址,故将它们直接插入T[6]中。
     当插入第7个关键字17时,其散列地址6已被非同义词28先占用,故探查h=(6+1)%11=7,将其插入到T[7]中。
     当插入第8个关键字88时,散列地址0已被同义词22占用,故探查h=(0+1)%11=1,此地址开放,所以将88放入T[1]中。
     类似地,第9个关键字59时,散列地址4已被同义词4占用,故探查h=(4+1)%11=5,此地址已被第5个关键字15占用故探查h=(4+2)%11=6,此地址已被第6个关键字28占用,继续探查h=(4+3)%11=7,此地址已被第7个关键字17占用,再探查h=(4+4)%11=8,此地址开放,所以将59放入T[8]中。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值