哈希表查找(Java)

本文介绍了哈希表的基本思想,散列函数的构造标准和常见方法,如平均取中法、除余法和折叠法。并展示了哈希查找在Java中的实现,使用除余法构建哈希函数,链表法解决哈希冲突。
摘要由CSDN通过智能技术生成

散列(哈希表)

1.基本思想:将关键字 (数据项)被映射到从0到Tablesize-1这个范围中的某个数,并且被放到适当的单元中。其中这个映射就叫做散列函数

0 H(Ki) Tablesize1

如图:




2.冲突:将两个不同的关键字映射到同一表的位置。如图:

用哈希函数将关键字映射到哈希表中(发生冲突的情况)

3.构造哈希函数的两个标准:(1)简单并且能快速计算;(2)能在地址中获取键的均部分。

4.构造哈希函数的几种常见方法:
 (1)平均取中法:具体做法是先通过关键字的平方值扩大相近数的差别,然后根据表长度取中间的几位数作为哈希值。
  例如:将一组关键字(0100,0110,1010,1001,0111)平方后得(0010000,0012100,1020100,1002001,0012321)若取表长为1000,则可取中间的三位数作为散列地址集:(100121,201,020,123)。

 (2)除余法:用关键字除以一个不大于哈希表长度

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值