摘要:
最大堆即大根堆 -- 求前n小最小堆即小根堆 -- 求前n大比如求前n小,对于当前元素,和最大堆的堆顶元素(即堆最大值)比较,如果小于堆顶元素,则替换堆顶元素,并调整堆。这样扫描一遍就可以得到最小的n个元素,效率非常高。问题实例:100w个数中找最大的前100个数1 INT_MIN初始化最小堆2 读入一个数,如果大于堆顶元素,则替换堆顶元素,并调整堆//base index 1#define LCHILD(i) (2*(i))#define RCHILD(i) (2*(i)+1)enum { BIGHEAP=0, SMALLHEAP=1,};//Adjust the heaptem... 阅读全文
posted @ 2012-03-26 23:32
windflying
阅读(1075)
评论(0)
推荐(0)

浙公网安备 33010602011771号