堆排序利用了大根堆的两个特点:
1. 堆顶元素是最大元素;
2. 后一次堆调整可以在前一次的基础上进行;
堆排序利用了数组的一个特点:
1. 快速定位指定索引的元素;
使用了以上的特点使得对无序数组进行排序变得简单而高效。...
分类:
编程语言 时间:
2015-03-21 09:52:38
阅读次数:
218
1. treap
众所周知, treap = tree + heap
也就是 treap 是具有堆性质的平衡二叉树(BST), 而堆性质的维护就靠一个随机值和旋转操作. 可以是小根堆也可以是大根堆.
在代码实现上, 左旋和右旋有太多的相似处, 可以用一个带旋转方向参数的 rotate 操作来完成.
模板...
分类:
其他好文 时间:
2015-02-28 14:34:03
阅读次数:
152
堆是一种完全二叉树,分为大根堆和小根堆,以大根堆为例:大根堆满足性质:对于堆中的任意一个节点,其值在以该节点为根的子树中最大。支持的操作:O(logn)的insert和O(logn)的pop.(1)insert操作:将插入元素放到完全二叉树的最后一个节点之后的一个节点,然后从该节点开始向上不断维护堆...
分类:
其他好文 时间:
2015-02-23 11:57:36
阅读次数:
137
题目链接:http://poj.org/problem?id=1442堆的练手题。搞一个大根堆和一个小根堆,其余YY一下就好 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define lowbit(a) ...
分类:
其他好文 时间:
2015-02-08 11:28:55
阅读次数:
150
在排序中,之前利用大小根堆的方式,保持最小值或者最大值在堆顶端
二叉排序树是保持这棵树一直是有序的
二叉排序树的建立,不同于堆操作只需要对非叶子节点进行处理,保持其大于左右孩子,或者是小于左右孩子,而是需要对每一个点都进行处理,因为他是相对而言更加
严谨的操作
查找一个数据:对于大根堆操作,如果当前值小于根节点,那么这个值在左右分支出现都是由可能得,但是对于BST,如果小那么肯定在...
分类:
编程语言 时间:
2015-02-03 19:27:04
阅读次数:
230
1.堆:通常通过二叉堆,实为二叉树的一种,分为最小堆和最大堆,具有以下性质:任意节点小于它的所有后裔,最小元在堆的根上。堆总是一棵完全树 将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。2.最小堆实现: 插入: 1) 将新插入的元素,放置到队列的尾部。 2) 若该元素小...
分类:
编程语言 时间:
2015-02-03 17:06:16
阅读次数:
386
题目大意:给定一棵有根树,求以每个点为根的子树中有多少点到它的距离不超过l
第一眼是可并堆- - 于是怒写- - 管它正解是啥- -
从下到上维护可并大根堆 键值是该点到当前根节点的距离 一旦堆顶剪枝大于l就弹顶
时间复杂度O(nlogn)
什么?你说将整个堆都加上一个值?
打标记不就好了- - 毫无疑问可并堆是可以打标记的- -
此外我的随机堆写if(flag^=1)就T写if(ra...
分类:
其他好文 时间:
2015-02-02 23:16:51
阅读次数:
235
1.小根堆
若根节点存在左子女则根节点的值小于左子女的值;若根节点存在右子女则根节点的值小于右子女的值。
2.大根堆
若根节点存在左子女则根节点的值大于左子女的值;若根节点存在右子女则根节点的值大于右子女的值。
3.结论
(1)堆是一棵完全二叉树(如果公有h层,那么1~h-1层均满,在h层连续缺失若干个右叶子)。
(2)小根堆的根节点的值是最小值,大根堆的根节点的值是最大值。
(3)...
分类:
编程语言 时间:
2015-02-02 21:34:38
阅读次数:
208
//poj 3016 K-Monotonic//分析:与2005年集训队论文黄源河提到的题目类似,给定序列a,求一序列b,b不减,且sigma(abs(ai-bi))最小。//思路:去除左偏树(大根堆)一半的节点(向上取整),让左偏树的根节点上存放中位数;每个左偏树的根节点表示一个等值区间//在本题...
分类:
其他好文 时间:
2015-02-01 23:07:17
阅读次数:
299
/** * 堆排序 *? * @param array * @param length */ public void heapSort(int[] array, int length) { // 调整为大根堆的形式 // 存储根堆的元素个数 int currentSize = length; int start = (currentSize - 2...
分类:
编程语言 时间:
2015-01-28 18:08:03
阅读次数:
180