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

简单的网站建设步骤百度指数第一

简单的网站建设步骤,百度指数第一,江西建设厅网站证书查询,网站建设项目需求说明快速回答:哈希表的索引是通过h&(n-1)计算的。n是底层数据的容量;n-1和某个哈希值做&运算,相当于截取了最低的四位,如果数组的容量很小,只取h的低位很容易导致哈希冲突。 通过异或操作将h 的低位引入高位可以增…

快速回答:哈希表的索引是通过h&(n-1)计算的。n是底层数据的容量;n-1和某个哈希值做&运算,相当于截取了最低的四位,如果数组的容量很小,只取h的低位很容易导致哈希冲突。

通过异或操作将h 的低位引入高位可以增加哈希值的随机性,从而减少哈希冲突。

解释:

以初始⻓度 16 为例,16-1=15。2 进制表示是 0000 0000 0000 0000 0000 0000 0000 1111 。只取最后 4 位相等于哈希值的⾼位都丢弃了。

⽐如说 1111 1111 1111 1111 1111 1111 1111 1111,取最后 4 位,也就是 1111。1110 1111 1111 1111 1111 1111 1111 1111,取最后 4 位,也是 1111。

不就发⽣哈希冲突了吗?

这时候 hash 函数 (h = key.hashCode()) ^ (h >>> 16) 就派上⽤场了。

将哈希值⽆符号右移 16 位,意味着原哈希值的⾼ 16 位被移到了低 16 位的位置。这样,原始哈希值的⾼ 16 位和低 16 位就可以参与到最终⽤于索引计算的低位中。

选择 16 位是因为它是 32 位整数的⼀半,这样处理既考虑了⾼位的信息,⼜没有完全忽视低位原本的信息,从⽽达到了⼀种微妙的平衡状态。

举个例⼦(数组⻓度为 16)。

  • 第⼀个键值对的键:h1 = 0001 0010 0011 0100 0101 0110 0111 1000
  • 第⼆个键值对的键:h2 = 0001 0010 0011 0101 0101 0110 0111 1000

如果没有 hash 函数,直接取低 4 位,那么 h1 和 h2 的低 4 位都是 1000,也就是说两个键值对都会放在数组的第8 个位置。

来看⼀下 hash 函数的处理过程。

①、对于第⼀个键 h1 的计算:

原始: 0001 0010 0011 0100 0101 0110 0111 1000

右移: 0000 0000 0000 0000 0001 0010 0011 0100

异或: -------------------------------------------------

结果: 0001 0010 0011 0100 0100 0100 0100 1100

②、对于第⼆个键 h2 的计算:

原始: 0001 0010 0011 0101 0101 0110 0111 1000

右移: 0000 0000 0000 0000 0001 0010 0011 0101

异或: -------------------------------------------------

结果: 0001 0010 0011 0101 0100 0100 0100 1101

通过上述计算,我们可以看到 h1 和 h2 经过 h ^ (h >>> 16) 操作后得到了不同的结果。现在,考虑数组⻓度为 16 时(需要最低 4 位来确定索引):

对于 h1 的最低 4 位是 1100 (⼗进制中为 12)

对于 h2 的最低 4 位是 1101 (⼗进制中为 13)

这样, h1 和 h2 就会被分别放在数组的第 12 个位置和第 13 个位置上,从⽽避免了哈希冲突。

http://www.dtcms.com/wzjs/359627.html

相关文章:

  • wordpress设置横向菜单seo关键词优化推广价格
  • 竞价网站转化率为多少关键词优化公司靠谱推荐
  • 建站宝盒v8破解版下载关键词简谱
  • 做网站代码nba最新交易
  • 佛山做网站怎么自己做一个网址
  • 网站怎么做直播间seo优化
  • 网站建设规划大纲怎么投放广告
  • 做纸浆的网站爱站网ip反查域名
  • 网站建设公司的前端网络推广公司十大排名
  • 旅游文创产品设计网络营销优化推广公司
  • 济南天桥区网站建设公司seo如何挖掘关键词
  • 网页设计实验报告结果分析苏州seo服务热线
  • 凡科免费建微信小程序网站网站如何做seo排名
  • 网站建设岗位能力怎么制作百度网页
  • 厦门做网站最好的公司有哪些百度云群组
  • 如何做jquery音乐网站营销推广软文
  • 广州企业如何建网站网站搜索优化
  • 网站建设制作视频培训机构网站制作
  • 网站怎么做才能被百度收录电商平台有哪些
  • 天津移动网站建设北京网站建设优化
  • 小城市网站建设业务网站友情链接交易平台
  • 广州网站建设服务电话关键字有哪些
  • 乒乓球网站怎么做上海百度推广排名
  • 做淘宝需要知道什么网站怎么做一个网站平台
  • 做的网站没有注册百度q3财报减亏170亿
  • 大型的网站建设360网站推广怎么做
  • 京东商城网站建设目标今天新闻摘抄十条
  • 网站会员体系想要推广页
  • 重庆网站开发公司广州seo技术优化网站seo
  • 做网站能收多少广告费天津seo标准