免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: lxyscls
打印 上一主题 下一主题

[算法] 请问平衡搜索树,在哈希之外能够存在原因是不是”有序“? [复制链接]

论坛徽章:
4
白羊座
日期:2013-09-17 21:59:30技术图书徽章
日期:2013-10-12 22:16:03白羊座
日期:2013-10-14 11:01:40双子座
日期:2013-12-17 18:26:39
41 [报告]
发表于 2014-05-19 14:39 |只看该作者
回复 38# yulihua49
不等式,MAX,MIN也都属于序

   

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
42 [报告]
发表于 2014-05-19 15:20 |只看该作者
井蛙夏虫 发表于 2014-05-19 14:39
回复 38# yulihua49
不等式,MAX,MIN也都属于序

yes。强调一下。

论坛徽章:
0
43 [报告]
发表于 2014-05-21 17:18 |只看该作者
hash表操作的时间复杂度是

O(1)+反碰撞方案的复杂度 = 反碰撞方案的复杂度
如果用链表反碰撞那就是O(n)。

另外,大O标记本来就是n趋于无穷时的最高次项,没有什么数据量大了是O什么数据量小了又是O什么的说法。

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
44 [报告]
发表于 2014-05-21 19:25 |只看该作者
请问平衡搜索树,在哈希之外能够存在原因是不是”有序“?

“有序”确实是关键,hash map到处都是,C++标准另选了一个反映本质的命名 --- unordered_map。
hash O(1)多么美好,但十分依赖输入/HASH函数/冲突处理,一不小心就变O(n),tree O(log(n))是天长地久,“有序”是优点也是缺点,有时几次比较代价并不低。在正确场合使用正确数据结构,谁都无法取代谁。

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
45 [报告]
发表于 2014-05-22 12:58 |只看该作者
timespace 发表于 2014-05-21 19:25
“有序”确实是关键,hash map到处都是,C++标准另选了一个反映本质的命名 --- unordered_map。
hash O( ...

搞了一个静态hash碰撞算法,冲突率1/3, 在冲突里,二次以上的占1/3,以此类推。。。。。
基本可以避免O(n)。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
46 [报告]
发表于 2014-05-24 13:15 |只看该作者
hash有很多不同的变种算法,特点各不相同
如果查找相对插入删除多,可以用(2,4)-cuckoo hash, 最坏情况下O(1)

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
47 [报告]
发表于 2014-05-26 10:38 |只看该作者
kmindg 发表于 2014-05-24 13:15
hash有很多不同的变种算法,特点各不相同
如果查找相对插入删除多,可以用(2,4)-cuckoo hash, 最坏情况下O ...

请介绍一下(2,4)-cuckoo hash。

论坛徽章:
0
48 [报告]
发表于 2014-05-26 10:51 |只看该作者
1.有序。
2.平衡树能实现增删改查都O(log n)。相对来说,hash表查询效率可以比较高(理想情况平摊O(1),具体得看怎么hash以及具体数据,比较看RP),但频繁插入删除为主时就没有优势。
3.相对通用。不需要纠结对hash进行特定优化。
4.相对稳定。对于各种输入,性能响应相对差异较小,容易预测,不需要指望RP。不会触发rehash等容易造成停顿的操作。
5.数据量较小时典型实现的存储开销比较小。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
49 [报告]
发表于 2014-05-26 15:58 |只看该作者
yulihua49 发表于 2014-05-26 10:38
请介绍一下(2,4)-cuckoo hash。


http://en.wikipedia.org/wiki/Cuckoo_hashing

(2,4)-cuckoo hash 是通用cuckoo hash的变种: 2 hash functions,4 keys per bucket

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
50 [报告]
发表于 2014-05-28 10:35 |只看该作者
本帖最后由 yulihua49 于 2014-05-28 10:45 编辑
kmindg 发表于 2014-05-26 15:58
http://en.wikipedia.org/wiki/Cuckoo_hashing

(2,4)-cuckoo hash 是通用cuckoo hash的变种: 2 has ...

看了一下,似懂非懂。
怀疑在接近满的时候会倒腾不过来。
这时需要扩充,rehash。。。。。

我的方法是第二张表是一个临时表,冲突项暂存于此。所有元素都插入完毕,在原表找空位,依次填入冲突项,并与原hash位置钩链,全部安置完毕,临时空间删除。
作为静态表,hash桶与数据项等大,没有空间浪费。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP