查看: 10428| 回复: 4
跳转到指定楼层
上一主题 下一主题
收起左侧

[学C/C++] 求解关于hashmap时间复杂度

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
才刚开始刷题 比较小白 求不喷= =
求解hashmap的操作的时间复杂度以及空间复杂度
先谢过啦~~~~~~~~~

上一篇:Remove substrings from a string to get the minimum length
下一篇:求问各位大神 在一个实际的网站中 是怎样根据不同的属性排序的
推荐
zhahaoyu 2017-1-29 05:47:38 | 只看该作者
全局:
本帖最后由 zhahaoyu 于 2017-1-29 05:49 编辑

Hashmap 是avg O(1), worst O(n) time 和O(n) space的. 每一次存或者取,通过计算一个hash function获得这个key的unique hash值, 这部分是O(1)的. 正常情况就只需要这么多,如果有collision的话,就是两个key 算出来的hash值是一样的,那就是linear 的complexity, 因为一个key里面有两个值, 所以worst的情况O(n), 然而这个几率非常小, 多次都collide的几率更小. space的话就是每多一个key-value pair,就要allocate一个space,所以是O(n).
回复

使用道具 举报

🔗
shengc5 2017-1-29 05:57:57 | 只看该作者
全局:
花花你也要转程序媛了吗
回复

使用道具 举报

🔗
cheese_harry 2017-6-17 15:47:04 | 只看该作者
全局:
zhahaoyu 发表于 2017-1-29 05:47
Hashmap 是avg O(1), worst O(n) time 和O(n) space的. 每一次存或者取,通过计算一个hash function获得这个 ...

谢谢 讲的很好!!
回复

使用道具 举报

🔗
FightForTomo 2017-6-24 20:26:52 | 只看该作者
全局:
本帖最后由 FightForTomo 于 2017-6-24 20:30 编辑

读写O(1)。
分为Open Hashing closed hashing.Open Hashing 就是如果存在重复值的话,就在重复的节点后面建立链表。
Closed Hashing 就是对那个储存数据的数组进行扩容。
hashing函数是 Key值 % array size。不少题中要求设计数据结构,用Hashmap HashSet非常好用。复杂度O(1)第一个就想到哈希表。
正好看到这里。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表