
算法
文章平均质量分 65
biran007
这个作者很懒,什么都没留下…
展开
-
sliding window问题
sliding window问题是一个经典问题。给出一个长为n的数组,求每个长度为k的子区间的最小值。比如:n=5序列为: 5,2,8,6,4,7k=3那么按照从左到右的顺序,所有长度为3的子区间的最小值分别是:2,4,7最简单的解法需要O(n*k)的复杂度。通过维护window的“上升最小序列”可以在O(n)的时间内对于某一个k求出所有答案 一个序列W原创 2010-05-24 15:07:00 · 2504 阅读 · 1 评论 -
Fibonacci Heap
<br />经过一下午的debug,总写出能运行的Fibonacci Heap了~<br /> <br />测试表明,运行的常数没有想象中的大。<br />和dijkstra配合的也不错,中小数据和二项堆表现几乎持平。<br />有待进一步大数据测试<br /> <br /> <br />#ifndef __FIB_HEAP__#define __FIB_HEAP__#include"PQ.h"template<class T>class fib_heap : public PQ<T>{原创 2010-09-18 21:39:00 · 2083 阅读 · 0 评论 -
Binomial Heap
最近在比较Dijkstra+各种优先队列组合的效率。这个想法源于算法课的作业。作业要我们用现成的库(LEDA)来比较。我比较出来的结果和预期相差甚远,怀疑是不是库的问题。于是,这次我亲手写了所有的代码,再比较一次。Binomial Heap虽然经常被各种教科书提到,不过实际应用不是很多。理由很简单:他没有堆简单,也没有斐波那契堆高效。然而,优美的结构(虽然不是很容易实现,可能是原创 2010-09-18 13:40:00 · 2300 阅读 · 4 评论