写这个玩意,我也是深深地感觉到自己数据结构的薄弱,可笑的是我一直以为学的还可以,结果一个堆结构就干了我半个月,才懂个大概= =,我也是醉了
BinaryTree.h二叉树的实现
/**
* 书本:《算法分析与设计》
* 功能:这个头文件是为了实现二叉树
* 文件:BinaryTree.h
* 时间:2014年12月15日18:35:51
* 作者:cutter_point
*/
// ...
分类:
编程语言 时间:
2015-01-04 10:12:18
阅读次数:
242
1. 堆 二叉堆是一个数组,它可以被看成一个近似的完全二叉树。 二叉堆有两种形式:最大堆和最小堆。在最大堆中,父节点的值总是大于等于任何一个子节点的值。因此,堆中的最大元素放在根节点中,并且在任一子树中,该字数包含的所有节点的值都不大于该子树根节点的值。最小堆是指父节点的值总是小于或等于任一子节.....
分类:
编程语言 时间:
2014-12-30 14:56:14
阅读次数:
209
Counter类:计数器IntPk中包含主键publicclassCounterextendsIntPK{
privateintcount;
publicintgetCount(){
returncount;
}
publicvoidsetCount(intcount){
this.count=count;
}
}MinHeap类:最小堆排序类packagecom.ryx.incantation.model;
importcom.ryx.incantation.en..
分类:
编程语言 时间:
2014-12-28 02:01:43
阅读次数:
232
Merge k Sorted ListsMergeksorted linked lists and return it as one sorted list. Analyze and describe its complexity.多路归并。1、用make_heap函数维护一个大小为k的最小堆。注:...
分类:
其他好文 时间:
2014-12-20 11:34:12
阅读次数:
163
注:本节主要讨论最大堆(最小堆同理)。一、堆的概念 堆,又称二叉堆。同二叉查找树一样,堆也有两个性质,即结构性和堆序性。 1、结构性质: 堆是一棵被完全填满的二叉树,有可能的例外是在底层,底层上的元素从左到右填入。这样的树称为完全二叉树(complete binary tree)。下图就是这样一个例...
分类:
其他好文 时间:
2014-11-28 15:49:09
阅读次数:
238
听说有一种最小(大)堆,不限于是完全二叉树,而是完全D叉树,名为D-ary Heap(http://en.wikipedia.org/wiki/D-ary_heap)。D可以是1,2,3,4,100,对于优先队列该有的功能都没有问题。 动手写一个D-ary Heap,应该不难。简单起见,不考虑...
分类:
其他好文 时间:
2014-11-27 00:00:48
阅读次数:
519
实现了 Prime算法求最小生成树 (邻接表)的普通算法和最小堆优化算法。...
分类:
编程语言 时间:
2014-11-26 21:02:49
阅读次数:
663
实现了 Prime算法求最小生成树 (邻接矩阵)的普通算法和最小堆优化算法。...
分类:
编程语言 时间:
2014-11-26 14:20:25
阅读次数:
342
TopK问题,即寻找最大的K个数,这个问题非常常见,比如从1千万搜索记录中找出最热门的10个关键词.
方法一:
先排序,然后截取前k个数.
时间复杂度:O(n*logn)+O(k)=O(n*logn)。
方法二:
最小堆.
维护容量为k的最小堆.根据最小堆性质,堆顶一定是最小的,如果小于堆顶,则直接pass,如果大于堆顶,则替换掉堆顶,并heapify整理堆,其中heapify...
分类:
编程语言 时间:
2014-11-21 18:42:10
阅读次数:
225
看书、思考、写代码!
/*********************************************
* copyright@hustyangju
* blog: http://blog.csdn.net/hustyangju
* 题目:堆排序实现,另外实现接口:取堆最大值并删除、堆插入
* 思路:堆是在顺序数组原址上实现的,利用完全二叉树的性质,更具最大堆和最小堆的定义实...
分类:
编程语言 时间:
2014-11-21 12:42:16
阅读次数:
171