码迷,mamicode.com
首页 >  
搜索关键字:小根堆    ( 310个结果
小结:平衡树
概要:平衡树大概是最常用的高级数据结构了,而treap用来进行一般的信息维护,splay用来进行高级的信息维护(比如区间操作、lct等)(map、set党自重QAQ)。技巧及注意:细节十分多。treap中如果设小根堆的话(最好设小根堆),null的重量要设置为inf。平衡树中的重复元素两种处理方法,...
分类:其他好文   时间:2014-09-29 14:20:21    阅读次数:318
堆排序+代码实现
堆排序 堆,heap,是二叉树的一种。小根堆有这样的性质——任意一个结点的值比它的左右孩子都要小。 排序思想 将待排元素看作是完全二叉树,物理上用一维数组存储。 实现堆排序需要解决两个问题: 1.如何将杂乱的完全二叉树初始化为一个堆? 答:从最后一个非叶结点起,将该节点当做根,自上而下进行调整,使之成为一个堆。然后依次对倒数第二个、倒数第三个、直至正数第一个结点进行此操作。 2.输出...
分类:其他好文   时间:2014-09-09 12:59:48    阅读次数:165
排序算法之堆排序
个人感觉堆排序还是在排序算法中比较难懂的,看了一段时间。准备把其中的思路理一理。首先,堆分为大根堆和小根堆。堆是满足下列性质的数列{r1, r2, …,rn}: 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。那么如何进行排序呢? 1. 我们要把序列构建为堆,建堆的核心就是不断的调....
分类:其他好文   时间:2014-09-07 13:26:55    阅读次数:205
POJ 3481 Double Queue 堆修改标记
Enemy Double Queue! 题目大意:维护一种数据结构,支持以下操作: 1.插入一个值 2.查询最大值并删除 3.查询最小值并删除 元素的值 这数据结构一看就是堆。。。不过堆结构不能同时维护最大值和最小值,于是我们开两个堆,一个大根堆,一个小根堆 其中一堆删除时,另一堆也要删除相应元素 于是删除的话有两种方法 1.映射 1000W开数组映射妥妥MLE 于是我们在两个堆...
分类:其他好文   时间:2014-08-29 18:28:18    阅读次数:277
排序算法总结之堆排序
堆的概念。 n个关键字序列Kl,K2,…,Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质):     (1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤ ) 满足(1)的称为小根堆,满足(2)的称为大根堆。     若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点...
分类:其他好文   时间:2014-08-20 16:22:02    阅读次数:229
堆排序——大根堆(大顶堆)
1.小根堆 若根节点存在左子女则根节点的值小于左子女的值;若根节点存在右子女则根节点的值小于右子女的值。 2.大根堆 若根节点存在左子女则根节点的值大于左子女的值;若根节点存在右子女则根节点的值大于右子女的值。 3.结论 (1)堆是一棵完全二叉树(如果公有h层,那么1~h-1层均满,在h层连续缺失若干个右叶子)。 (2)小根堆的根节点的值是最小值,大根堆的根节点的值是最大值。 (3)...
分类:其他好文   时间:2014-08-12 13:35:44    阅读次数:319
堆排序
堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单。(1)用大根堆排序的基本思想① 先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区② 再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交换,由...
分类:其他好文   时间:2014-07-11 19:45:59    阅读次数:136
POJ 3253 Fence Repair 类似哈夫曼树的贪心思想
题解 用类似哈夫曼树的思想去考虑,每次选取两个较小的点合并,然后把合并后的放回原集合。用一个小根堆去维护即可。 注意首先,C++的优先队列默认是大顶堆,所以需要改写;其次,改写之后的堆是没有clear()方法的,所以务必记住队列的清空!...
分类:其他好文   时间:2014-06-25 07:34:58    阅读次数:274
JSOI2007建筑抢修
实际上和大多这类题一样(比如wikioi上的地鼠游戏),考察的都是堆的操作这次改完之后就算把堆的模版定下来了悲剧的是:大根堆打成了小根堆,导致一开始一直是10分……按结束时间排序,(经过验证,结束时间相同的建筑不需要在根据t的大小来排序)如果time+t[i]>1; 8 while k>=1 ...
分类:Web程序   时间:2014-06-21 16:02:49    阅读次数:352
c++标准模板库的使用
1.priority_queue priority_queue,greater >q; //小根堆,即对头元素最小; priority_queue//默认情况,大根堆,即队头元素最大。(后续更新)2.deque【双端队列】 接口类似vector(单向插入删除) c.pop_back() 弹出最后一个...
分类:编程语言   时间:2014-05-10 05:30:09    阅读次数:348
310条   上一页 1 ... 29 30 31
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!