堆-顾名思义,上面小,下面大,或者上面大,下面小。在堆排序过程中,首先应该建堆。如何将数组中的元素建立成一个规范的堆行结构。二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最...
分类:
其他好文 时间:
2014-07-26 00:07:16
阅读次数:
381
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都...
分类:
其他好文 时间:
2014-07-25 14:08:42
阅读次数:
228
1 2 3 4 5 6 45 46 84 85 86 87 我是根节点,添加子节点88 89 90 91
分类:
其他好文 时间:
2014-07-24 12:15:15
阅读次数:
216
二叉堆:
二叉堆是完全二叉树或者是近似完全二叉树。
二叉堆满足二个特性:
1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。
2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。
当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小堆
堆排序:
由二叉堆的定义可知,堆顶元素(即...
分类:
其他好文 时间:
2014-07-23 22:34:19
阅读次数:
193
看到cocos2dx2.2.5发布了,修复了输入框的bug,于是我们的项目也升级到了2.2.5,升级过程还是比较顺利,没想到后来发现设置透明度无效了。经过调试发现要调用一下setCascadeOpacityEnabled(true),结果还是没有效果,又继续调试,原来noe没父节点不会更新自己的透明...
分类:
其他好文 时间:
2014-07-23 22:25:57
阅读次数:
403
题目大意:
给出一棵树,树上每个节点都有权值,然后有两个操作。
1 x val 在结点x上加上一个值val,x的儿子加上 -val,x的儿子的儿子加上 - (-val),以此类推。
2 x 问x节点的值。
思路分析:
每个节点上加值都是给自己的儿子节点加,而且这个是颗树。
比如样例上的,如果你给node 1加一个值,那么五个节点都加。
再给node 2加个值,2的儿子节点也加...
分类:
其他好文 时间:
2014-07-23 13:19:26
阅读次数:
272
题目:hdoj1166
分析:题意很清晰,就是让你给某个点又增加或者减少x个,然后求某一段有多少个,我是用一个father数组保存叶子节点的编号,然后直接从当前节点开始,更轻到root就ok。
查询的话,从根节点开始,看在左子区间还是右子区间,直接查询到某一段全部在要查询的区间内,求和就ok,很简单。
代码:
#include
#include
#include
...
分类:
其他好文 时间:
2014-07-22 14:33:54
阅读次数:
231
heap
-------------------------------------------------------------------------
binary heap 是一种完全二叉树。
隐式表示法:以 array 表述 tree。
小技巧:将 array 的 #0 元素保留,则第 i 个元素的左右子节点分别是 2i 和 2i + 1,
父节点是i/2 --> STL 里没有采用这种小技巧
将 array 无法动态改变大小,所以用 vector 替代 array
这个文件里提供了各种堆操作的...
分类:
其他好文 时间:
2014-07-22 00:32:34
阅读次数:
256
对于一个二叉搜索树, 要想找到这棵树的最小元素值, 我们只需要从树根开始, 沿着left 孩子指针一直走, 知道遇到NULL(即走到了叶子), 那么这个叶子节点就存储了这棵二叉搜索树的最小元素。 同理, 从根节点开始, 沿着right 孩子指针, 最终找到的是最大关键字的节点。
也就是说寻找BST最小关键字的元素和最大关键字的元素的代码是对称的。伪代码如下:
TREE_MINIMUM(x...
分类:
编程语言 时间:
2014-07-21 09:28:27
阅读次数:
241
采用一维数组建树。(因为一维数组建的是完全二叉树,时间上比用孩子节点指针建树慢,不过基本可以忽略=-=)
#include
#include
#include
using namespace std;
const int INF = 0xffffff0;
int minV=INF;
int maxV=-INF;
struct Node
{
int L,R;
int minV,ma...
分类:
其他好文 时间:
2014-07-20 22:28:44
阅读次数:
216