码迷,mamicode.com
首页 >  
搜索关键字:大根堆    ( 291个结果
堆排序
堆排序利用了大根堆的两个特点: 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
hihocoder1105 堆
堆是一种完全二叉树,分为大根堆和小根堆,以大根堆为例:大根堆满足性质:对于堆中的任意一个节点,其值在以该节点为根的子树中最大。支持的操作:O(logn)的insert和O(logn)的pop.(1)insert操作:将插入元素放到完全二叉树的最后一个节点之后的一个节点,然后从该节点开始向上不断维护堆...
分类:其他好文   时间:2015-02-23 11:57:36    阅读次数:137
传统_POJ-1442
题目链接: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
java实现最小堆
1.堆:通常通过二叉堆,实为二叉树的一种,分为最小堆和最大堆,具有以下性质:任意节点小于它的所有后裔,最小元在堆的根上。堆总是一棵完全树 将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。2.最小堆实现: 插入: 1) 将新插入的元素,放置到队列的尾部。 2) 若该元素小...
分类:编程语言   时间:2015-02-03 17:06:16    阅读次数:386
BZOJ 3011 Usaco2012 Dec Running Away From the Barn 可并堆
题目大意:给定一棵有根树,求以每个点为根的子树中有多少点到它的距离不超过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 左偏树 + 贪心 + dp
//poj 3016 K-Monotonic//分析:与2005年集训队论文黄源河提到的题目类似,给定序列a,求一序列b,b不减,且sigma(abs(ai-bi))最小。//思路:去除左偏树(大根堆)一半的节点(向上取整),让左偏树的根节点上存放中位数;每个左偏树的根节点表示一个等值区间//在本题...
分类:其他好文   时间:2015-02-01 23:07:17    阅读次数:299
Java学习资料-Java常用算法-堆排序
/** * 堆排序 *? * @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
291条   上一页 1 ... 25 26 27 28 29 30 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!