题目链接:http://poj.org/problem?id=3253思路:题目与哈夫曼编码原理相同,使用优先队列与贪心思想;读入数据在优先队列中,弹出两个数计算它们的和,再压入队列中;代码:#include #include using namespace std;struct cmp{ b...
分类:
其他好文 时间:
2014-11-10 19:32:09
阅读次数:
161
优先队列用法在优先队列中,优先级高的元素先出队列。标准库默认使用元素类型的qi;通过,greater>qi2;其中第二个参数为容器类型。第二个参数为比较函数。故示例2中输出结果为:2 3 5 6 9第三种方法:自定义优先级。structnode{friendbooloperator(noden1,n...
分类:
编程语言 时间:
2014-11-09 16:34:43
阅读次数:
257
#include
#include
#define N 30000
using namespace std;
int a[N+1],o=0;
typedef struct
{
int weight;
int parent,lchild,rchild;
}htnode;
typedef struct
{
int weight;
}htcode;
void huffmanselect(htno...
分类:
其他好文 时间:
2014-11-04 19:42:45
阅读次数:
397
(一) 堆排序:由于优先队列可以花费O(NlogN)时间的排序,基于该想法的排序称之为堆排序。建立N个元素的二叉堆,基本上花费的时间为O(N),再执行N次删除操作。按照顺序呢,最小的元素先离开该堆。通过将这些元素...
分类:
编程语言 时间:
2014-11-03 14:45:36
阅读次数:
301
优先队列:可以当做一个堆用,对进入此结构的类型,可以找队首的元素。开库:#include定义: priority_queue Q;type:int类型 priority Q; 默认Q.top为队列中最大的;当我们要在队列中放入其他类型时,我们要用struct 在其中定义 operator Q.to....
分类:
其他好文 时间:
2014-11-02 22:28:47
阅读次数:
148
队列的特点是先进先出。通常都把队列比喻成排队买东西,大家都很守秩序,先排队的人就先买东西。但是优先队列有所不同,它不遵循先进先出的规则,而是根据队列中元素的优先权,优先权最大的先被取出。通常把优先队列比喻成现实生活中的打印。一个打印店里有很多打印机,每台机器的性能不一样,有的打印机打印很快,有的打印...
分类:
其他好文 时间:
2014-11-02 22:28:01
阅读次数:
193
1、概述 队列是一种满足先进先出(FIFO)的数据结构,数据从队列头部取出,新的数据从队列尾部插入,数据之间是平等的,不存在优先级的。这个就类似于普通老百姓到火车站排队买票,先来的先买票,每个人之间是平等的,不存在优先的权利,整个过程是固定不变的。而优先级队列可以理解为在队列的基础上给每个数据赋一....
分类:
其他好文 时间:
2014-11-02 22:18:24
阅读次数:
210
优先队列【堆】的应用: ????选择问题:输入时N 个元素以及一个整数k ,这N 个元素的集可以是全序的。该选择问题是要找出第 k 个最大的元素。。。 ????有多种解决方案: 1A算法:把这些元素读入数组,并对...
分类:
其他好文 时间:
2014-11-02 16:42:15
阅读次数:
401
一、优先队列的一些简单的实现: ????1. 使用一个简单的链表在表头以O(1) 执行插入操作,并遍历该链表以删除最小元,这需要O(N) 的时间。 ????2. 始终让表保持有序状态;这使得插入代价高昂(O(N)), 而...
分类:
其他好文 时间:
2014-11-01 23:24:07
阅读次数:
342