1、堆排序算法描述:
(1)定义
n个关键字序列Kl,K2,…,Kn称为(Heap),当且仅当该序列满足如下性质(简称为堆性质):
1)ki=号。//k(i)相当于二叉树的非叶子结点,K(2i)则是左子节点,k(2i+1)是右子节点
2)若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:
树中任一非叶子结点的关键...
分类:
编程语言 时间:
2015-07-22 18:51:11
阅读次数:
116
B+树flyfish 2015-7-21引用自严蔚敏《数据结构》(C语言版) 一棵阶的B+树和m阶的B树的差异在于:1.有n棵子树的结点中含有n个关键字。
(B树是n棵子树有n-1个关键字)2.所有的叶子结点中包含了全部关键字的信息,及指向含有这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大的顺序链接。
(B树的叶子结点没有包含全部关键字的信息)3.所有的非终端结点可以看成是索引部分,...
分类:
其他好文 时间:
2015-07-21 22:21:05
阅读次数:
152
线段树区间开方。。。直接暴力改到叶子。。一开始数组开小RE。。。#include#include#include#include#include#include#include#define l(a) (((a)>1; build(l(a),l,mid); build(r(a),mid+...
分类:
其他好文 时间:
2015-07-21 12:35:54
阅读次数:
107
题目链接:点击打开链接
题目大意:蜗牛把壳落在了一个树梢上,壳在每一个树梢上的概率是相同的。现在他从树根开始爬,在树杈中可能会有毛毛虫,告诉它壳是否在这个树枝上。每个树枝的长度为1,问最终能找到壳需要爬行的距离期望值最小是多少。
求期望值 = ∑到第i个树梢的距离*在第i个树梢上的概率(i为叶子节点) = 到所有叶子节点的和/叶子节点数。也就是说要求一个序列,按这个序列到达每一个节点的和是最小...
分类:
其他好文 时间:
2015-07-21 10:42:51
阅读次数:
115
单点更新:最最基础的线段树,只更新叶子节点,然后把信息用PushUP(int r)这个函数更新上来hdu1166 敌兵布阵线段树功能:update:单点增减 query:区间求和 1 #include 2 #include 3 #include 4 using namespace std; 5 #....
分类:
其他好文 时间:
2015-07-20 12:24:53
阅读次数:
98
红黑树红黑树(RBT)的定义:它或者是一颗空树,或者是具有一下性质的二叉查找树: 1.节点非红即黑。 2.根节点是黑色。 3.所有NULL结点称为叶子节点,且认为颜色为黑。 4.所有红节点的子节点都为黑色。 ...
分类:
其他好文 时间:
2015-07-19 11:31:50
阅读次数:
121
// 1递归函数遇到全局变量,最好转化成函数参数
// 2遍历的本质强化
// 访问树的路径是相同,只不过是计算叶子结点的时机不同。...
分类:
其他好文 时间:
2015-07-19 10:18:32
阅读次数:
147
//每行剩余的长度是线段树的叶子结点值,每贴一张声明,就更新一次#include#include#include#include#includeusing namespace std;const int MAXN = 200020;int len[MAXN > 1; build( l, mid...
分类:
其他好文 时间:
2015-07-18 19:48:05
阅读次数:
123
/* 不是叶子节点 ,且cnt=1.注意这里,cnt=1确切的意义是什么, 应该是,可以确定,这个区间被完全覆盖了1次, 而有没有被完全覆盖两次或以上则不知道无法确定,那么怎么怎么办了, 只要加上t[lch].s + t[rch].s 即,看看左右孩子区间被覆盖了一次或以上...
分类:
其他好文 时间:
2015-07-18 15:21:02
阅读次数:
141
1.小根堆如果根是儿童的存在留下的根值左孩子小于值;如果根是儿童的权利的存在的根值比他们的孩子的权利少值。2.大根堆如果根是儿童的存在留下的根值多名离开自己的孩子值。子女则根节点的值大于右子女的值。3.结论(1)堆是一棵全然二叉树(假设公有h层,那么1~h-1层均满,在h层连续缺失若干个右叶子)。(...
分类:
编程语言 时间:
2015-07-18 13:49:08
阅读次数:
179