初识哈希表

哈希表

  • 1.引入
  • 2.哈希思想
  • 3.哈希技术的三个关键问题
    • 3.1 哈希表容量的设计
    • 3.2 哈希技术关键之二:哈希函数
      • 哈希函数构造方法
        • 哈希函数示例:线性函数
        • 哈希函数示例:除留余数法
    • 3.3 哈希技术关键之三:解决冲突策略
      • 开放定址法
        • 开放定址法——线性探测法(Linear Probing)
          • 用线性探测法创建哈希表的查找算法
          • 用线性探测法创建哈希表的插入算法
        • 开放定址法——平方探测法(Quadratic Probing)
          • 在平方探测法构造的哈希表中进行查找的算法
          • 在二次探测法构造的哈希表中进行插入操作的算法
      • 拉链法(链地址法)
        • 在拉链法构造的哈希表中查找并插入的算法
    • 解决方法的比较
  • 4. 哈希查找的性能分析

1.引入

初识哈希表_第1张图片

2.哈希思想

初识哈希表_第2张图片
初识哈希表_第3张图片
哈希既是一种查找技术,也是一种存储技术。
哈希只是通过记录的关键字定位该记录,哈希表没有表达记录之间的逻辑关系。所以,哈希主要是面向查找的存储结构

  • 不适用于:
    ⁻ 范围查找
    ⁻ 多个记录有相同关键字

【冲突】
初识哈希表_第4张图片

3.哈希技术的三个关键问题

  • 哈希表容量的设计
    保证n个记录能够存进去,又使得存储空间尽可能少

  • 哈希函数的设计
    如何设计一个运算过程简单、运算结果均匀的哈希函数

  • 冲突的处理方法
    如何采取合适的处理冲突方法来解决冲突

3.1 哈希表容量的设计

初识哈希表_第5张图片

3.2 哈希技术关键之二:哈希函数

初识哈希表_第6张图片

哈希函数构造方法

初识哈希表_第7张图片
初识哈希表_第8张图片

哈希函数示例:线性函数

初识哈希表_第9张图片

哈希函数示例:除留余数法

初识哈希表_第10张图片

3.3 哈希技术关键之三:解决冲突策略

初识哈希表_第11张图片

开放定址法

初识哈希表_第12张图片

开放定址法——线性探测法(Linear Probing)

初识哈希表_第13张图片
初识哈希表_第14张图片
初识哈希表_第15张图片

ASL的成功与不成功计算法
初识哈希表_第16张图片

初识哈希表_第17张图片

用线性探测法创建哈希表的查找算法

初识哈希表_第18张图片

用线性探测法创建哈希表的插入算法

初识哈希表_第19张图片

开放定址法——平方探测法(Quadratic Probing)

初识哈希表_第20张图片
初识哈希表_第21张图片
初识哈希表_第22张图片

在平方探测法构造的哈希表中进行查找的算法

初识哈希表_第23张图片

在二次探测法构造的哈希表中进行插入操作的算法

初识哈希表_第24张图片
初识哈希表_第25张图片

拉链法(链地址法)

初识哈希表_第26张图片
初识哈希表_第27张图片

在拉链法构造的哈希表中查找并插入的算法

初识哈希表_第28张图片

解决方法的比较

初识哈希表_第29张图片

4. 哈希查找的性能分析

初识哈希表_第30张图片
初识哈希表_第31张图片

你可能感兴趣的:(数据结构,散列表,数据结构,哈希算法)