http://www.cnblogs.com/flyoung2008/articles/2136485.htmlpriority_queue调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法实现,也算是堆的另外一种形式。先写一个用 STL 里面堆算法实...
分类:
其他好文 时间:
2015-07-27 13:04:08
阅读次数:
91
STL中与堆相关的4个函数——建立堆make_heap(),在堆中添加数据push_heap(),在堆中删除数据pop_heap()和堆排序sort_heap():
头文件 #include
下面的_First与_Last为可以随机访问的迭代器(指针),_Comp为比较函数(仿函数),其规则——如果函数的第一个参数小于第二个参数应返回true,否则返回false。
建立堆
make_heap(_First, _Last, _Comp)
默认是建立最大堆的。对int类型,可...
分类:
其他好文 时间:
2015-07-20 16:43:31
阅读次数:
117
priority_queue调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法实现,也算是堆的另外一种形式。先写一个用 STL 里面堆算法实现的与真正的STL里面的 priority_queue用法相似的priority_queue, 以加深对 pri...
分类:
其他好文 时间:
2015-07-15 18:53:37
阅读次数:
176
前几天在做Kth Largest Element in an Array 时使用到了堆,通过那倒题目也了解到了堆的make_heap,push_heap,pop_heap操作,看了C++ reference中的讲解也明白了heap_sort是什么回事。于是想着自己实现以下这四个函数。
堆的定义:
任意节点小于它的所有后裔,最小元在堆的根上(堆序性)。
堆总是一棵完全树。
#include <ios...
分类:
其他好文 时间:
2015-07-14 18:16:02
阅读次数:
109
在看侯捷翻译的STL源码剖析时,发现关于heap这一节点错误,特此指出.
1 make_heap源码
template
inline void
make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
{
__make_heap(__first, __last,
__...
分类:
其他好文 时间:
2015-07-04 12:47:35
阅读次数:
114
题意:给你n*m的矩阵,然后每行取一个元素,组成一个包含n个元素的序列,一共有n^m种序列,
让你求出序列和最小的前n个序列的序列和。
先介绍下堆的基本操作:
int arr[N];
make_heap(arr+1,arr+N);//对数组arr建堆,堆里第一个元素为最大值
pop_heap(arr+1,arr+N+1);//将第一个元素与最后一和元素交换
push_heap(ar...
分类:
其他好文 时间:
2015-04-28 22:55:15
阅读次数:
280
【题目链接】:click here~~
【题目大意】:
描述 小明很想吃果子,正好果园果子熟了。在果园里,小明已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。小明决定把所有的果子合成一堆。 因为小明比较懒,为了省力气,小明开始想点子了:
每一次合并,小明可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下...
分类:
其他好文 时间:
2015-04-18 17:48:37
阅读次数:
144
最小的n个和Time Limit: 1000 MSMemory Limit: 32768 KTotal Submit: 129(37 users)Total Accepted: 35(29 users)Rating: Special Judge: NoDescription给定A、B两个数列,各包含...
分类:
其他好文 时间:
2015-04-13 22:35:00
阅读次数:
143
STL中,有很多的排序函数模板供我们调用,省去我们自己编写一些排序过程的麻烦。本文是一篇关于STL中堆排序的一个介绍。 本文涉及的几个函数如下:make_heap(), push_heap(), pop_heap(), is_heap(), sort_heap()。其中make_heap()用于构建...
分类:
其他好文 时间:
2015-04-13 20:26:52
阅读次数:
132
前几天同学参加腾讯实习的网络笔试,闲聊中得知一道编程题目,最近也在看算法,觉得刚好用来练手。这题觉得以最小堆实现比较方便,在C++中,以中 make_heap(), push_heap(), pop_heap(), sort_heap()四个函数管理堆十分方便。make_heap(RandomIt ...
分类:
其他好文 时间:
2015-04-11 14:31:56
阅读次数:
267