Hash (散列,哈希)

1.为了减少比较的次数,或者直接找到目的元素的下表,提出了Hash。

2.Hash 函数的构造方法

(1)常用的是取模的方法;

(2)数字分析法用于知道全部关键字,提取原关键字中的部分(即不重复的)作为关键字,例如在图书编号中;

(3)平方取中法,一个数平方后的的中间几位和原数的每一位都有关,可以选做关键字;

(4)折叠法,将关键字分割成位数相同的几部分,然后取这几部分的叠加和作为散列值的地址。

3.处理冲突的方法

first 开放地址法

(1)线性探测法:把散列表当作一个循环表,所选取的位置冲突时,顺序下一个空位作为该地址;

(2)二次探测法:如取模n,如果取模后位置已经占了,则加1^2,如果位置也占了,则加2^2,如果还占加3^2....最后加到(n-1)^2,还没有空位的话 就返回_。

(3)伪随机探测法:如取模n,如果取模后位置已经占了,则设置一个伪随机数m,去占领【(x%n)+m】%n的位置。

second 链地址法

把具有相同地址的记录放在一个单链表中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值