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

广东住房城乡建设厅网站首页技能培训网站

广东住房城乡建设厅网站首页,技能培训网站,2003怎么建设网站空间,网站域名申请了该怎么做为什么会有哈希冲突?哈希表通过哈希函数来计算存放数据,在curd数据时不用多次比较,时间复杂度O(1)。但是凡事都有利弊,不同关键字通过相同哈希函数可能计算出来相同的存放地址,这种现象被称为哈…

为什么会有哈希冲突?

哈希表通过哈希函数来计算存放数据,在curd数据时不用多次比较,时间复杂度O(1)。但是凡事都有利弊,不同关键字通过相同哈希函数可能计算出来相同的存放地址,这种现象被称为哈希冲突。

如何避免哈希冲突?

1.设计合理的哈希函数
  1. 直接定制法

  1. 取关键字的某个线性函数作为哈希地址:Hash = A * Key + B

  1. 优点:简答,均匀

  1. 缺点:需要事先知道关键字的分布情况,

  1. 适合场景:查找比较小且连续的情况

  1. 除留余数法

设哈希表允许的地址数m,取一个<=m,但最接近或者等于m的质数p作为除数,按照哈希函数Hash = key % p,将关键码转换成哈希地址

2.调节负载因子
负载因子 = 元素个数 / 哈希表的容量

如图所示,负载因子越大,发生哈希冲突的可能性越大。又哈希表中元素不能减少,只能扩大哈希表中的数组容量

解决哈希冲突

如果哈希冲突无法避免,又该如何处理哈希冲突呢?
  1. 开放地址法/闭散列

  1. 线性探测

当发生哈希冲突时,如果哈希表没被装满说明还有空位置,那么可以把key存放到冲突位置的“下一个”空位置。

要往哈希表中插入14,hash(14) = 14 % 10 = 4。已经存放了4,就往下找,直到找到空位置(也就是5下标),24,34,44同理。

缺点:1.线性探测把可能冲突的元素,放到一起,挨得很近。
2.不好删除,如果你删除了4,会影响到44的查找
  1. 二次探测

为了解决线性探测大量冲突元素堆积在一起的缺点,使用函数Hi = (H0 + i2 ) % m (其中i = 1,2,3....).H0 是通过哈希函数对元素关键字Key进行计算得到的位置,m表示哈希表的大小,i表示发生冲突的次数

14的下标 (4 + 12 ) % 10 = 5, 24的下标 (4 + 22 ) % 10 = 8

  1. 开散列/哈希桶/链地址法/开链法

首先对关键码集合用哈希函数计算哈希地址,具有相同地址的关键码归于同一子集合,每个子集合称为一个桶,每个桶里的元素通过一个单链表连接起来,各个链表的头节点存储在哈希表中(即数组+链表)。如果冲突非常严重,每个桶的背后变成一棵红黑树(数组+链表+红黑树)

http://www.ds6.com.cn/news/28622.html

相关文章:

  • 做网站购买服务器如何去推广自己的产品
  • 哪个网站可以做头像网站ip查询
  • 做团购的网站有哪些美国搜索引擎
  • 机械门户网站建设特点接单平台app
  • 用asp做网站怎么美观网络优化的三个方法
  • drupal 网站实例网站注册流程和费用
  • php网站开发权限管理数据分析软件哪个最好用
  • 网站响应式图片切换代码美国疫情最新情况
  • 乐清网站优化推广今天济南刚刚发生的新闻
  • 智能建站系统官网营销型网站设计
  • 买个域名后怎么做网站关键词的选取原则
  • 傻瓜式建站软件下载全国教育培训机构平台
  • 盐城做网站哪家公司好seo数据监控平台
  • 郑州网站建设选微锐x小程序自助搭建平台
  • 网站建设的感想一般的电脑培训班要多少钱
  • 手机网站范例谷歌搜索引擎网址
  • python不用框架做动态网站网络营销推广的方式有哪些
  • 免费的开发网站建设百度识图查图片
  • 使用php做的网站推广app下载
  • wordpress ftp账户西安seo公司
  • 免费做网站建设本地推广平台有哪些
  • 手机端网站关键词排名seo排名赚app
  • 安徽建设工程安全监督总站网站惠州搜索引擎seo
  • 网站友情链接怎么样做中国企业网络营销现状
  • 墨刀做网站上下滑动的交互百度爱采购优化排名软件
  • 永川网站制作小网站
  • 优秀网站建设空间seo信息网
  • 一个公司设计网站怎么做的百度收录在线提交
  • 做网站平台百度推广怎么登录
  • wordpress删除小工具seo如何优化网站步骤