C++深入解析哈希表:探讨哈希冲突解决方法
发布时间
阅读量:
阅读量
文章结构概述
- 1.哈希概念
- 2.哈希碰撞(哈希冲突)
-
- 2.1哈希冲突产生原因
-
- 2.1.1哈希函数设计原则
- 2.1.2常见哈希函数
-
2.2 处理哈希冲突的方法
-
- 1.闭散列
-
- 定义
-
1.1线性探测
-
1.2二次探测
- 哈希负载因子
- 2.开散列
-
- 1.定义
-
-
2.实现
-
3.扩容
- 3.开散列与闭散列比较
-
-
- 2.哈希碰撞(哈希冲突)
1.哈希概念
【在顺序结构和平衡树的数据组织形式中,元素的关键码与其存储位置之间并不存在直接的对应关系,因此在查找某一特定元素时,必须通过多次关键码的比较操作才能完成。
顺序查找的时间复杂度为O(N),而平衡树的查找效率则取决于树的高度,即O(log2N ),其性能与查找过程中所进行的关键码比较次数密切相关。
因此,我们希望是否存在一种方法,能够无需任何比较操作,直接从数据表中获取所需元素。如果可以设计出一种存储结构,并借助某种函数(
hashFunc)实现元素关键码与其存储位置之间的一一映射关系,那么在
全部评论 (0)
还没有任何评论哟~
