数据结构——Hash表

哈希表是一种通过哈希函数将关键字映射到存储位置的数据结构,旨在实现快速查找。常见的哈希函数构造方法包括直接定址法、数字分析法、平方取中法、折叠法和除留余数法。哈希冲突不可避免,解决冲突的方法有开放地址法、再哈希法、链地址法和公共溢出区法。链地址法在HashMap中当链表长度超过8时会转为红黑树以优化性能。哈希表是时间和空间权衡的典型应用,通过调整哈希函数可以在效率和空间占用间找到平衡。
摘要由CSDN通过智能技术生成

哈希表:

  • 定义:
    • 散列技术是指在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每一个关键字都对应一个存储位置。即:存储位置=f(关键字)。在查找的过程中,只需要通过这个对应关系f 找到给定值key的映射f(key)。只要集合中存在关键字和key相等的记录,则必在存储位置f(key)处。我们把这种对应关系f 称为散列函数或哈希函数
    • 采用散列技术将记录存储在一块连续的存储空间中,这块连续的存储空间称为哈希表。所得的存储地址称为哈希地址或散列地址

哈希函数构造方法:

  • 原则:

    • 计算简单
    • 分布均匀
  • 构造方法:

    • 直接定址法:
      • 取关键字或关键字的某个「线性函数值」为哈希地址
      • 优点:简单,均匀,不会产生冲突
      • 缺点:需要实现直到关键字的分布情况
      • 适用性:适合查找表比较小且连续的情况
    • 数字分析法:
      • 数字分析法用于处理关键字是位数比较多的数字,通过抽取关键字的一部分进行操作,计算哈希存储位置的方法
      • 适用性:适合处理关键字位数比较大的情况,事先知道关键字的分布且关键字的若干位分布均匀
    • 平方取中法:
      • 先对关键字取平方,然后选取中间几位为哈希地址,取的位数由表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值