优先队列是由堆实现的。 1 #include <iostream> 2 #include <fstream> 3 #include <string> 4 5 template<typename T> 6 void swap(T &x, T &y) { 7 T temp = x; 8 x = y; 9 ...
分类:
其他好文 时间:
2019-02-07 09:36:53
阅读次数:
165
二叉堆是一种特殊的堆,二叉堆就是一棵完全二叉树。二叉堆有两种:最大堆和最小堆。最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于任何一个子节点的键值。在二叉堆上可以进行插入节点、删除节点、取出值最小的节点、减小节点的值等基本操作。 ...
分类:
其他好文 时间:
2019-02-05 14:27:16
阅读次数:
199
大概思路:1的数字输入完之后,进入2数字判断,y与每种数据结构出来的元素进行判断。 顺,别忘记判断为空的情况 ...
分类:
其他好文 时间:
2019-02-04 14:07:39
阅读次数:
188
这篇随笔主要是Huffman编码,构建哈夫曼树有各种各样的实现方法,如优先队列,数组构成的树等,但本质都是堆。 这里我用数组来存储数据,以堆的思想来构建一个哈弗曼树,并存入vector中,进而实现哈夫曼编码 步骤: 1生成哈夫曼树 (取最小权值树和次小权值树生成新树,排列后重新取树,不断重复) 2编 ...
分类:
其他好文 时间:
2019-02-03 10:49:44
阅读次数:
173
暂时只写一点平时能用到的 优先队列 本质是堆,堆的本质嘛,数组or指针~还是那句话!数组模拟世间万物! std::priority_queue<int>Q; Q.top();//返回队列里最大的值 Q.pop(); 树状数组 只能完成前缀和的查询~ 1.lowbit(i);获取的是最后一位1在哪 2 ...
分类:
其他好文 时间:
2019-01-31 19:25:09
阅读次数:
168
题目链接:https://www.luogu.org/problemnew/show/P1090 思路: 典型的贪心题,显然每次选择两个最小的堆合并最后耗费的体力最少,但每次合并之后都需要寻找最小的两个堆。假如每次合并之后都排一次序,一定会超时的。 可以有很多实现方法,一种是使用优先队列,每次出队两 ...
分类:
其他好文 时间:
2019-01-31 19:15:05
阅读次数:
259
https://leetcode.com/problems/sort-characters-by-frequency/ Given a string, sort it in decreasing order based on the frequency of characters. Example ...
分类:
其他好文 时间:
2019-01-30 20:53:43
阅读次数:
199
描述 Foreverlin is working in a company. In order to make boss happier, he must work as hard as possible, there are n projects on the todolist. Now is t ...
分类:
其他好文 时间:
2019-01-30 00:27:37
阅读次数:
153
题目描述: Farmer John wants to repair a small length of the fence around the pasture. He measures the fence and finds that he needs N (1 ≤ N ≤ 20,000) pla ...
分类:
其他好文 时间:
2019-01-29 14:55:02
阅读次数:
213
创建队列 使用ES6改造 最小优先队列 js function PriorityQueue(){ let items = [] function QueueElement(element,priority){ this.element = element this.priority = priori ...
分类:
Web程序 时间:
2019-01-28 21:17:20
阅读次数:
137