当前位置: 首页 > news >正文

哈希表中处理冲突的方法

哈希表

哈希表在建立的时候有两个地方比较重要,一个是哈希函数,另外一个就是如何解决地址冲突。

为什么会有冲突?

当关键字集合很大时,关键字值不同的元素可能会映像到哈希表的同一地址上,即K1!=K2,但f(K1)=f(K2),这种现象称为hash冲突,实际中冲突是不可避免的,只能通过改进哈希函数的性能来减少冲突。

解决哈希冲突的几种办法

处理冲突是指对于一个待插入哈希表的数据元素,若按给定的哈希函数求得的哈希地址已被占用,则按一定规则求下一哈希地址,如此重复,直至找到一个可用的地址以保存该元素。

1、开放地址法。基于该重复地址,对地址进行增量,+1,2,3,4…或者±12,22,32,...k21^2,2^2,3^2,...k^212,22,32,...k2,线性探测再散列,二次探测再散列,伪随机探测再散列。
2、链地址法。将所有按给定的哈希函数求得的哈希地址相同的关键字存储在同一线性链表中,且使链表按关键字有序。


http://www.taodudu.cc/news/show-1782108.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • SENet算法解析
  • SNIP物体检测算法理解
  • yolov3聚类自己数据的anchor box
  • Ubuntu下安装qt57creator-plugin-ros,在QT中进行ROS开发(亲测有效)
  • ROS下面调用自定义的头文件和.cpp/.so文件(亲测有效)
  • C++调用编译好的darknet来进行物体监测
  • hard-negative mining详细介绍
  • yolov3中如何进行聚类得到anchor box的
  • ubuntu16.04下编译安装Autoware
  • catkin_make和cmake
  • 深度学习三种分割定义
  • 基于激光雷达点云数据的目标检测
  • 递归和循环两种方式求解连续数的相加
  • PCL中把txt文件转换成.pcd文件(很简单)
  • pcl对点云进行直通滤波
  • error: (-205:Formats of input arguments do not match) All the matrices must have the same data type
  • ubuntu16.04下Qt无法输入中文注释
  • ROS下sensor_msgs::ImagePtr到sensor_msgs::Image之间的转换
  • ROS下同时接收多个话题并实现相机和雷达的数据融合
  • 柱状图之最大矩形面积
  • 哈希函数的构造方法以及哈希表解决冲突的方式
  • 回旋镖的数量
  • 伪代码之KMeans和DBSCAN
  • leetcode之有效的括号
  • leetcode之每日温度
  • leetcode之逆波兰表达式
  • leetcode之二叉树的中序遍历
  • 机器学习深度学习面试宝典-深度学习500问
  • leetcode之删除排序数组中的重复项
  • leetcode之移动零