Advertisement

C++深入解析哈希表:探讨哈希冲突解决方法

阅读量:

文章结构概述

  • 1.哈希概念
    • 2.哈希碰撞(哈希冲突)
        • 2.1哈希冲突产生原因
          • 2.1.1哈希函数设计原则
        • 2.1.2常见哈希函数
      • 2.2 处理哈希冲突的方法

          • 1.闭散列
            • 定义
        • 1.1线性探测

        • 1.2二次探测

          • 哈希负载因子
          • 2.开散列
              • 1.定义
        • 2.实现

        • 3.扩容

          • 3.开散列与闭散列比较

1.哈希概念

【在顺序结构和平衡树的数据组织形式中,元素的关键码与其存储位置之间并不存在直接的对应关系,因此在查找某一特定元素时,必须通过多次关键码的比较操作才能完成。
顺序查找的时间复杂度为O(N),而平衡树的查找效率则取决于树的高度,即O(log2N ),其性能与查找过程中所进行的关键码比较次数密切相关。

因此,我们希望是否存在一种方法,能够无需任何比较操作,直接从数据表中获取所需元素。如果可以设计出一种存储结构,并借助某种函数(hashFunc)实现元素关键码与其存储位置之间的一一映射关系,那么在

全部评论 (0)

还没有任何评论哟~