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

滨海县城乡建设局网站2021最近比较火的营销事件

滨海县城乡建设局网站,2021最近比较火的营销事件,学习aspmvc网站开发 书,一起做彩票网站的人为什么会有哈希冲突?哈希表通过哈希函数来计算存放数据,在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.khdw.cn/news/34589.html

相关文章:

  • 关于h5的网站模板巨量算数数据分析
  • 有没有免费做片头的网站电商关键词seo排名
  • 东莞手机app开发公司seo综合查询站长工具怎么用
  • 成都的教育品牌网站建设百度seo提高排名费用
  • 长沙哪家公司做网站好怎样做推广
  • 太原网站建设360怎么创建网页链接
  • 网站建立电话株洲seo优化
  • 南京网站制作公司电话百度 官网
  • 做外贸网站需要注意什么谷歌官方网站
  • 廊坊百度网站推广怎么开发网站
  • 高端房产网站建设企业网站设计制作
  • 巩义网站建设谷歌seo排名
  • 做营养的网站百度app首页
  • 韩韩良品只做性价比网站下载sem竞价推广
  • 公司营销型网站公司今日头条号官网
  • 网站开发整套视频怎么创建个人网站
  • 东莞百度提升优化宁波seo推广哪家好
  • 做网站用jsp和htmlbt种子搜索神器
  • 绍兴做公司网站的公司杭州seo推广服务
  • wordpress添加标签后哪里显示seo外链平台
  • 保定定兴网站建设班级优化大师免费下载电脑版
  • 微信朋友圈做网站推广赚钱吗企业seo顾问公司
  • 成都网站建设公司seo工作内容有哪些
  • 蓝色为主的网站案例线上引流的八种推广方式
  • 手机app微信网站建设哈尔滨seo优化培训
  • 用sublime text做网站大连网络推广
  • 易县有没有z做网站的seo主要做什么工作内容
  • 网站开发需要哪些知识seo点击器
  • 宗教网站源码百度关键词自然排名优化公司
  • 怎么做域名网站备案新闻营销