社区
数据结构与算法
帖子详情
关于hash表的时间复杂度
NeilHappy
2011-11-30 12:49:49
hash就是散列,甚至再散列。但是我一直对hash表的时间复杂度有个疑问。一个需要存储的字符串,通过hash函数散列到一个相对较短的索引,使得存取速度加快。但为什么存取的时间复杂度能达到常量级O(1)呢?? 查找时搜索索引不需要费时间吗?为什么不是O(n)呢? n是hash表的长度
可不可以这样理解:对一个字符串算出hash码后,这个hash码相当于一个指针,就可以直接指向其存储位置,从而是O(1)的时间复杂度。
...全文
4330
6
打赏
收藏
关于hash表的时间复杂度
hash就是散列,甚至再散列。但是我一直对hash表的时间复杂度有个疑问。一个需要存储的字符串,通过hash函数散列到一个相对较短的索引,使得存取速度加快。但为什么存取的时间复杂度能达到常量级O(1)呢?? 查找时搜索索引不需要费时间吗?为什么不是O(n)呢? n是hash表的长度 可不可以这样理解:对一个字符串算出hash码后,这个hash码相当于一个指针,就可以直接指向其存储位置,从而是O(1)的时间复杂度。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
打赏
举报
回复
我一直是这么认为的,希望是这样
微软面试100题系列之高清完整版PDF文档[带目录+标签]by_July
- 二分查找的
时间复杂度
分析,哈希查找的关键在于哈希函数的设计。 3. **动态规划**:解决具有重叠子问题和最优子结构的问题。 - 如何定义状态转移方程,递推公式的推导。 4. **贪心算法**:在每一步选择中都采取...
Hash
表
的
时间复杂度
为什么是O(1)?
@TOC ...所以只要知道了数组的下标,就可以计算得到数组的地址,比如元素4,我们知道数组起始地址后,只要用起始地址+下标*4就可以知道元素4的地址,所以访问数组元素的
时间复杂度
为O(1) ......
Hash
表
的
时间复杂度
为什么是O(1)?
【
hash
表
的
时间复杂度
】
hash
表
的
时间复杂度
为什么是O(1)?能回答这个问题的答案之前,肯定必须先了解
hash
表
的数据结构。如下图所示: 如图中清晰可知,
hash
表
是基于数组+链
表
的实现的。数组在内存中是一块连续的...
哈希
表
与
时间复杂度
哈希
表
散列
表
(
Hash
table,也叫哈希
表
),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到
表
中一个位置来...哈希
表
是使用 O(1)O(1)
时间复杂度
进行数据的插入删除和查找,但
哈希
表
时间复杂度
及空间复杂度评估
哈希
表
的平均
时间复杂度
主要取决于哈希函数的选择和执行操作的数量。例如,通过选择合适的哈希函数和算法,可以降低哈希
表
在处理大量数据时的平均
时间复杂度
;同时,通过合理的内存布局和优化数据结构,可以提高哈希...
数据结构与算法
33,027
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章