数据结构之哈希

数据结构之哈希

  1. 散列方法:利用散列函数进行散列。
  2. 常见的散列函数:(1)取余法:H( Key ) = Key % M
    (2)平方取中法:H( Key ) = Key2 的中间部分,其长度取决于表的大小。
    (3)乘法杂凑函数:H( Key ) =  M * (( * Key ) % 1 )
  3. 如何解决经过hash后两数的hash值是同一个的问题:
    解决方法:(1)线性探测:将hash值相同的两个值存在相邻的表的位置里。
    e.g:H(k) = k % 11,
    这种方法的不足之处:会造成堆积(找值缓慢),且最关键的问题是如果删除恰好占了对应的hash值得第一个值的对应位置的上过一个hash值被删除的位置的话,将找不到下一个值
    (2)二次探测法:hash(k)=d 如果位置被占,则会探测对应的d-1(d+1),(d-2^2) (d+2^2)…的位置
    (3)再hash: 如果hash(k)=d的位置被占,则会在计算一个hash值c然后探测d+C,d+2c,d+3c等位置。
    还可以应用的方法:将两个hash值相同的值存在一个链表里。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值