/*
* 堆的性质(最小堆为例):
* 0.根节点为最小值
* 1.堆可以看做是一个完全二叉树(即孩子节点从左向右排列)
* 2.堆的高度lgn/lg2(n为节点的数目)
* 3.第i节点的左孩子节点是2*i+1,右孩子节点为2*i+2
* 4.以任意一个节点作为根节点,那么该节点都是堆
* 5.可以用一个数据来表示堆
*/
/*
* 构建堆的原理:
* 上滤
* 在最后一个节点后建立一个空节点...
分类:
编程语言 时间:
2015-04-23 21:47:50
阅读次数:
182
堆排序,顾名思义利用堆的性质进行排序。堆都有哪些性质,比如:一堆沙子、一堆泥土二叉堆实际上是一课完全二叉树,同时满足:父结点的键值总是大于或等于(小于或等于)任何一个子结点的键值当父结点的键值总是大于或等于任何一个子结点的键值时称为 最大堆当父结点的键值总是小于或等于任何一个子结点的键值时称为 最小...
分类:
编程语言 时间:
2015-04-18 17:37:59
阅读次数:
145
几个概念:
完全二叉树:是指除叶子节点那层外,叶子节点以上的第k层都含有2k2^k个节点而且叶子节那层的节点都靠左方。
满二叉树:与完全二叉树先比,多了连叶子节点也要全满的限制条件。
堆的代码实现(数组实现):int heap[10000], sz = 0;void push(int x) { //向堆里面增加元素X
int i = sz++, p;
while(i > 0)...
分类:
其他好文 时间:
2015-04-17 22:22:15
阅读次数:
202
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都...
分类:
编程语言 时间:
2015-04-16 13:58:35
阅读次数:
170
参考书籍《数据结构与算法分析——C语言描述》
关于堆的一些基本概念,可参见小zz的另一篇博文。
/*本例程实现的是最小堆,最大堆类似*/
#include
#include
#include
#include
#define MAX 13
typedef struct BHeap
{
int Capacity;//堆的最大容量
int Size;//当前堆大小
in...
分类:
其他好文 时间:
2015-04-15 23:27:29
阅读次数:
235
Java实现二叉树及相关遍历方式
在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。
二叉树常被用于实现二叉查找树和二叉堆。
以下用Java实现对二叉树的先序遍历,中序遍历,后序遍历,广度优先遍历,深度优先遍历。
转摘请注明:http://blog.csdn.net/qiuzhping/article/details/44830369...
分类:
编程语言 时间:
2015-04-02 13:29:04
阅读次数:
210
堆排序利用的是堆这种数据结构来对进行排序,(二叉)堆数据结构是一种数组对象,它可以被视为一棵完全的二叉树,树的每个节点与数组中存放该节点的值得那个元素对应。这里使用最大堆进行排序算法设计,最大堆就是parent(i) > leftchild(i) 且parent(i) > rightchild(i)...
分类:
其他好文 时间:
2015-03-27 23:35:39
阅读次数:
220
题意:给出n根木板,需要把它们连接起来,每一次连接的花费是他们的长度之和,问最少需要多少钱。和上一题果子合并一样,只不过这一题用long long学习的手写二叉堆的代码,再好好理解= = 1 #include 2 #include 3 #include 4 #include 5 #in...
分类:
其他好文 时间:
2015-03-21 15:28:51
阅读次数:
137
堆排序与高速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先解说下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是全然二叉树或者是近似全然二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)不论什么一个子节点的键值。2.每一个结点的左子树和右...
分类:
编程语言 时间:
2015-03-20 14:20:38
阅读次数:
155
二叉堆提供了o(lgn) 时间的插入, 删除最小,降级等操作,o(n) 时间的合并操作; ?斐波那契堆提供了更优操作时间界限:o(1) 插入, o(lgn) 删除最小, o(lgn) 删除, o(1)合并。 根据算法导论上说,斐波那契堆在删...
分类:
其他好文 时间:
2015-03-18 18:43:12
阅读次数:
145