首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >散列函数和大小为2^p的表

散列函数和大小为2^p的表
EN

Stack Overflow用户
提问于 2008-11-10 03:12:45
回答 2查看 1.4K关注 0票数 0

当从键的哈希码计算哈希表存储桶索引时,当存储桶数组的大小是2的幂时,为什么我们要避免使用除法(模数)后的余数?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-11-10 03:21:25

当计算散列时,你想要尽可能多的信息,因为你可以在整个比特范围内很好地分布:例如,32位无符号整数通常是好的,除非你有很多(>30亿)项要存储在哈希表中。

它将散列代码转换为您真正感兴趣的存储桶索引。当存储桶的数量n是2的幂时,您所需要做的就是在hash代码h和(n-1)之间进行AND操作,结果等于need n。

这可能很糟糕的一个原因是,AND操作只是从散列码中丢弃了位-高级位。这可能是好的,也可能是坏的,这取决于其他事情。一方面,它将非常快,因为和比除法快得多(这也是您选择使用2个桶的幂的原因),但另一方面,糟糕的散列函数在较低的位可能具有较差的熵:也就是说,当被散列的数据发生变化时,较低的位不会有太多变化。

票数 5
EN

Stack Overflow用户

发布于 2010-12-12 14:54:43

假设表的大小是m= 2^p,k是一个键。这样,当我们执行k mod m时,我们将只得到k的二进制表示的最后p位。因此,如果我放入几个具有相同最后p位的键,则哈希函数的性能将非常非常差,因为所有键都将被哈希到表中的相同位置。因此,避免2的幂

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/277638

复制
相关文章
Fix My iPhone for Mac(iOS系统修复软件)
Fix My iPhone Mac版是一款运行在MacOS上的iOS系统修复软件,可以帮助你修复您的iPhone卡在Apple徽标,黑屏,冻结屏幕,iTunes更新/还原错误和超过20个iOS 12升级失败等问题!
用户10121095
2023/02/10
5650
在github的某次commit中close或者fix某个issue
当你在某次提交解决了其他人提出的issue时,你可以使用github中的语法实现自动操作。
老高的技术博客
2022/12/28
1K0
安装Python3.7.0
2.Download-Files根据自己的需要选择Windows版本或其他版本等,下图是Windows64位的
py3study
2020/01/09
3650
Elasticsearch 断路器报错了,怎么办?
这是系列文章的第三篇,主要探讨:Elasticsearch 断路器报错了,怎么办?
铭毅天下
2022/04/06
1.7K0
Elasticsearch 断路器报错了,怎么办?
函数表达式在JavaScript中是如何工作的?
在JavaScript中,函数表达式是一种将函数赋值给变量的方法。函数表达式可以出现在代码的任何位置,而不仅仅是函数声明可以出现的位置。函数表达式的语法如下:
王小婷
2023/10/23
2280
如何修复Vue中的 “this is undefined” 问题
别担心,不只有你一个人,我也经常遇到这个问题很多次,接下我们一起来看看如何解决这个问题。
前端小智@大迁世界
2020/05/12
5K0
贴心 | GXF Fix 修复 / 优化基因结构注释信息文件 - GTF/GFF3
目前基因组测序和组装成本几乎已经到任何一个课题组都可以单独负担的价码,大量物种的基因组序列被测定和释放。与此同时,对应的基因结构注释信息文件,如GTF或GFF3文件等,也可公开下载。
CJ-Chen
2021/04/13
1.5K0
贴心 | GXF Fix 修复 / 优化基因结构注释信息文件 - GTF/GFF3
fix bug:Spring中事务不生效的问题
@Transactional(propagation = Propagation.REQUIRES_NEW)
关忆北.
2021/12/07
7580
PrestaShop 网站漏洞修复如何修复
PrestaShop网站的漏洞越来越多,该网站系统是很多外贸网站在使用的一个开源系统,从之前的1.0初始版本到现在的1.7版本,经历了多次的升级,系统使用的人也越来越多,国内使用该系统的外贸公司也很多,PrestaShop扩展性较高,模板也多,多种货币自由切换,并支持信用卡以及paypal支付,是外贸网站的首选。就在最近几天,PrestaShop被爆出有远程代码注入漏洞,该漏洞影响范围较光,危害较大,可以上传webshell到网站根目录下。
网站安全专家
2019/07/24
4.2K0
PrestaShop 网站漏洞修复如何修复
PrestaShop网站的漏洞越来越多,该网站系统是很多外贸网站在使用的一个开源系统,从之前的1.0初始版本到现在的1.7版本,经历了多次的升级,系统使用的人也越来越多,国内使用该系统的外贸公司也很多,PrestaShop扩展性较高,模板也多,多种货币自由切换,并支持信用卡以及paypal支付,是外贸网站的首选。就在最近几天,PrestaShop被爆出有远程代码注入漏洞,该漏洞影响范围较光,危害较大,可以上传webshell到网站根目录下。
技术分享达人
2019/01/01
4.1K0
matlab中的ezplot函数详解_matlab中fix函数的用法
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说matlab中的ezplot函数详解_matlab中fix函数的用法,希望能够帮助大家进步!!!
Java架构师必看
2022/09/23
1.8K0
matlab中的ezplot函数详解_matlab中fix函数的用法
Linux下python3.7.0安装
1、安装依赖包 1)首先安装gcc编译器,gcc有些系统版本已经默认安装,通过  gcc --version  查看,没安装的先安装gcc,yum -y install gcc,由于本人的linux系统中已经安装了,出现了下面界面。
py3study
2020/01/10
10K0
Linux下python3.7.0安装
Fix No Sound Issue on Mac
Now I am dealing with Mac OSX. However I found sometimes this is no sound. People say it’s a bug. I have tried some methods. And found this goes for me every time.
技术小黑屋
2018/09/04
4470
如何在MySQL中检查和修复MyISAM表
由于写入不完整,空间不足,MySQL守护程序被杀或崩溃,电源故障等原因,MySQL表可能因各种原因而损坏。 如果MySQL检测到崩溃或损坏的表,则需要先修复它才能再次使用。 本指南将引导您检测崩溃的表以及如何修复MyISAM表。
星哥玩云
2022/08/17
2.2K0
SyntaxError:keyword can't be an expression
def build_profile(first_name,last_name,*messages):
用户6080811
2019/08/21
1.3K0
Java 中正则表达式如何匹配竖线(|) , 以及在 Kotlin 中是如何改进的?
因为 | 在正则表达式中是或的概念,要想匹配就得用转移字符 "|" 但是 "" 又是java的转移字符,要让其在正则中起作用,就得使用: "\|"
一个会写诗的程序员
2019/07/18
2.4K0
如何修复Windows 10中损坏的系统文件!
相信大家用电脑的都遇到过这样的情况:电脑在启动过程中感觉有问题或遇到问题,这时候则Windows系统文件可能已损坏,丢失,甚至已被某个软件安装更改。与之前的大多数Windows版本一样,Windows 10包含一个名为「SFC」的命令提示实用程序,它将扫描,验证和修复系统文件。
FreeRonin
2019/08/22
9.6K0
【DB笔试面试791】在Oracle中,BBED模拟修复坏块。
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
AiDBA宝典
2020/05/07
5770
在 Java 中运用动态挂载实现 Bug 的热修复
大多数 JVM 具备 Java 的 HotSwap 特性,大部分开发者认为它仅仅是一个调试工具。利用这一特性,有可能在不重启 Java 进程条件下,改变 Java 方法的实现。典型的例子是使用 IDE 来编码。然而 HotSwap 可以在生产环境中实现这一功能。通过这种方式,不用停止运行程序,就可以扩展在线的应用程序,或者在运行的项目上修复小的错误。这篇文章中,我将演示动态绑定、应用运行期代码变化进行绑定、介绍一些工具 API 以及 Byte Buddy 库,这个库提供了一些 API 代码改变更方便。
哲洛不闹
2018/09/14
1.1K0
在 Java 中运用动态挂载实现 Bug 的热修复
Jar mismatch! Fix your dependencies
  在开发Android项目的时候,有时需要引用多个项目作为library。在引用项目的时候,有时会出现“Jar mismatch! Fix your dependencies”错误。 这是因为两个
xiangzhihong
2018/01/29
7480

相似问题

何时从MYSQL DB for Codeigniter检索数据

30

使用Mysql从DB检索时间戳数据

11

使用日期比较从mysql DB检索数据

614

使用java从MySQL DB中检索数据

11

swing从mysql db检索数据到textfield

25
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文