堆排序(heapsort)是一种原地(in place)排序算法, 它的时间复杂度是O(nlgn). 堆数据结构不只是在堆排序中有用,它还可以构成一个有效的优先队列。堆数据结构是一种数组对象,它可以被视为一颗完全二叉树。如图: Aheap-size是放在A中堆的元素个数。根据数组节点的索引,我们.....
分类:
其他好文 时间:
2014-06-15 21:27:58
阅读次数:
239
java 队列、优先级队列、双向队列示例演示代码...
分类:
编程语言 时间:
2014-06-15 20:10:30
阅读次数:
271
## 简介这两个都是最基础最简单的数据结构。## 栈数据用一个数组来存储,再用一个变量来跟踪栈顶就足够了。栈的特点是后进先出,主要的方法就两个,Push压入栈,Pop弹出。class DSStack { private T[] _ds; private int _t...
分类:
其他好文 时间:
2014-06-15 16:37:14
阅读次数:
169
tc 介绍 在linux中,tc 有二种控制方法 CBQ 和 HTB.HTB 是设计用来替换 CBQ 的.HTB比CBQ更加灵活,但是CPU 开销也更大,通常高速的链路会使用CBQ,一般而言HTB使用的更加广泛。HTB 的规则本质上是一个树形结构,包括三个基本的构成块:队列规定 qdisc(queu...
分类:
系统相关 时间:
2014-06-15 08:15:38
阅读次数:
291
堆是什么?是一种特殊的完全二叉树,就像下面这棵树一样。
有没有发现这棵二叉树有一个特点,就是所有父结点都比子结点要小(注意:圆圈里面的数是值,圆圈上面的数是这个结点的编号,此规定仅适用于本节)。符合这样特点的完全二叉树我们称为最小堆。反之,如果所有父结点都比子结点要大,这样的完全二叉树称为最大堆。那这一特性究竟有什么用呢?
假如有14个数分别是9...
分类:
其他好文 时间:
2014-06-15 08:03:16
阅读次数:
223
此实例是一个简单的使用消息队列进行实时聊天的本机通信程序,,发送端每发送一个消息,会立即被接收读取,在没有消息在消息队列中时,将处于阻塞状态。终端1运行接收端#include #include #include #include #include #include #include struct m...
分类:
其他好文 时间:
2014-06-15 06:24:47
阅读次数:
206
一、简介一个NSOperation对象可以通过调用start方法来执行任务,默认是同步执行的。也可以将NSOperation添加到一个NSOperationQueue(操作队列)中去执行,而且是异步执行的。创建一个操作队列:[java]view plaincopyNSOperationQueue*q...
分类:
编程语言 时间:
2014-06-14 23:05:23
阅读次数:
330
Codeforces Zepto Code Rush 2014 Feed with Candy 贪心 题解
一开始想的很native,就是想简单贪心排一下序去搞。。。然后玩脱了。。。先是无脑WA8,后来好不容易过了就被适牛hack了。。。
正解是,每次选取所有可能的糖果中,质量最大的那个。
具体实现的时候可以用优先队列去维护。...
分类:
其他好文 时间:
2014-06-14 09:26:27
阅读次数:
257
优先级队列:如果我们给每个元素都分配一个数字来标记其优先级,不妨设较小的数字具有较高的优先级,这样我们就可以在一个集合中访问优先级最高的元素并对其进行查找和删除操作了。这样,我们就引入了优先级队列
这种数据结构。
优先级队列(priority queue) 是0个或多个元素的集合,每个元素都有一个优先权,对优先级队列执行的操作有(1)查找(2)插入一个新元素 (3)删除 一般情况下,查找操...
分类:
其他好文 时间:
2014-06-14 07:23:16
阅读次数:
271