社区
数据结构与算法
帖子详情
关于hash表的时间复杂度
NeilHappy
2011-11-30 12:49:49
hash就是散列,甚至再散列。但是我一直对hash表的时间复杂度有个疑问。一个需要存储的字符串,通过hash函数散列到一个相对较短的索引,使得存取速度加快。但为什么存取的时间复杂度能达到常量级O(1)呢?? 查找时搜索索引不需要费时间吗?为什么不是O(n)呢? n是hash表的长度
可不可以这样理解:对一个字符串算出hash码后,这个hash码相当于一个指针,就可以直接指向其存储位置,从而是O(1)的时间复杂度。
...全文
4418
6
打赏
收藏
关于hash表的时间复杂度
hash就是散列,甚至再散列。但是我一直对hash表的时间复杂度有个疑问。一个需要存储的字符串,通过hash函数散列到一个相对较短的索引,使得存取速度加快。但为什么存取的时间复杂度能达到常量级O(1)呢?? 查找时搜索索引不需要费时间吗?为什么不是O(n)呢? n是hash表的长度 可不可以这样理解:对一个字符串算出hash码后,这个hash码相当于一个指针,就可以直接指向其存储位置,从而是O(1)的时间复杂度。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
happyperson
2011-11-30
打赏
举报
回复
你可以看看java里面hashmap的实现,里面用的是数组哦
Zephyrzzz
2011-11-30
打赏
举报
回复
查找索引当然会很快,不过只有无冲突的hash table复杂度才是O(1),一般是O(c),c为哈希关键字冲突时查找的平均长度。
Usopp_Dream
2011-11-30
打赏
举报
回复
o⑴的原因是离散后,下标对应关键字
oo
2011-11-30
打赏
举报
回复
就是2楼说的这样
catmonkeyxu
2011-11-30
打赏
举报
回复
hash表的桶一般是数组,计算出来的hash值一般是整数,可直接作为数组下标,然后……你懂的
keeya0416
2011-11-30
打赏
举报
回复
我一直是这么认为的,希望是这样
为什么都用哈希,
Hash
表
的
时间复杂度
为什么是 O(1)?
博文内容为哈希
表
的简单认知涉及
Hash
表
的索引计算,长度计算,以及如何减少哈希冲突,一致性哈希认知理解不足小伙伴帮忙指正 😃,生活加油生如夏花之灿烂,死如秋叶之静美。—— 泰戈尔 《生如夏花》讲
Hash
之前,简单聊聊数组(直接寻址
表
)
Hash
表
的
时间复杂度
为什么是 O(1)以及
Hash
冲突怎么形成的(面试版)
要了解
Hash
表
,需要先从数组说起。 数组 数组是最常用的数据结构,创建数组必须要内存中一块连续的空间,并且数组中必须存放相同的数据类型。比如我们创建一个长度为 10,数据类型为整型的数组,在内存中的地址是从 1000 开始,那么它在内存中的存储格式如下。 ...
Hash
表
的
时间复杂度
为什么是O(1)?
当我们要读取数据的时候,只要给定 Key abc,还是用这样一个算法过程,先求取它的
Hash
Code 101,然后再对 8 取模,因为数组的长度不变,对 8 取模以后依然是余 5,那么我们到数组下标中去找 5 的这个位置,就可以找到前面存储进去的 abc 对应的 Value值。
Hash
Code101 对 8 取模余数是5,
Hash
Code109 对 8 取模余数还是 5,也就是说,不同的 Key 有可能计算得到相同的数组下标,这就是所谓的
Hash
冲突,解决
Hash
冲突常用的方法是链
表
法。
hash
表
的增删改查
时间复杂度
都是o(1)
hash
表
的增删改查
时间复杂度
都是o(1)
02丨数据结构原理:
Hash
表
的
时间复杂度
为什么是O(1)?
大概十年前,我在阿里巴巴工作的时候,曾经和另一个面试官一起进行一场技术面试,面试过程中我问了一个问题:
Hash
表
的
时间复杂度
为什么是O(1)?候选人没有回答上来。面试结束后我和另一个面试官有了分歧,我觉得这个问题没有回答上来是不可接受的。而他则觉得,这个问题有一点难度,回答不上来不说明什么。因为有了这次争执,后来这个问题成了我面试时的必考题。此后十年间,我用这个问题面试了大约上千人,这些面试经历让...
数据结构与算法
33,025
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章