Binomial Heap
来源:互联网 发布:广州软件开发招聘 编辑:程序博客网 时间:2024/06/03 13:28
花一下午写的一个二项堆的C++实现,思想源自Robert Sedgewick 的 Algorithms in C。
首先说下性能。复杂度没什么好说的,merge, push, pop, top, size, empty 都是O(lgn),下面讲一下本机测试的数据。
(host) Pent. dual-core t3200, 2G hz, 2G ram, (OS) linux 2.6.32,(compiler) gcc 4.5.2
输入 0~n-1的自然数,n = 100000000,一亿
n次push很快,7秒,因为是链式树的实现,甚至比std::priority_queue还要快,后者10秒,但是pop就太不堪了,为标准库的2倍多,
n次push后的析构,花 4秒,唉,都超过push的一半了,std::priority_queue是随机访问序列的适配器,其析构自然是瞬杀了。
这样比起来,其实也很一般。
好吧,我知道不能这么比,二项堆就是二项堆,全O(lgn)操作的数据结构,最主要的是merge。
不得不说,Mr. Sedgewick 的算法解说非常棒,但是其代码,真的太那个了。下面贴出代码,以私有方法insert为主体,模仿二进制加法进行合并式插入。
(PS. 按Mr. Sedgewick描述的,以简单的二的幂堆的集合为基础进行实现。翻了下算法导论,里面的图解很晕人,没仔细研究,也不知用的什么方法)
- Binomial Heap
- Binomial Heap
- Binomial Heap(English Version)
- binomial heap实现
- Binomial Tree & Heap
- 二项堆(Binomial Heap)
- 二项堆 Binomial Heap
- 二项堆 Binomial Heap 与 二项树 Binomial Tree 性质探究(主要针对归并 merge 操作)
- 用循环不变式证明BINOMIAL-HEAP-UNION(H1, H2)的正确性
- Binomial Showdown
- 8.1.Binomial
- Binomial coefficients
- Binomial Coeffcients
- Binomial Coeffcients
- Binomial Coefficients
- Binomial Coeffcients
- Binomial Showdown
- Binomial Coeffcients
- C++学习总结_内联函数
- nfs:server is not responding,still trying 原因与解决方案
- 欢迎加入【亿能测试快讯】邮件列表!
- wampServer2.1错误(Could not execute menu item (internal error) [Exception] Could not perform service action 服务尚未启动)
- 各种字符编码方式详解及由来(ANSI,UNICODE,UTF-8,GB2312,GBK)
- Binomial Heap
- wampServer2.1安装后进入localhost和phpMyAdmin都进不去,提示403错误
- ExtJS buttons
- 《转载》Android AlertDialog 方法setView(view,0,0,0,0)的使用
- SQL Server 索引
- 开博啦
- 使用Cactus+Jetty进行servelt的单元测试
- Oracle中truncate与delete的区别
- 解决VS2008 开发Windows Mobile 项目生成速度慢的问题