二叉堆:
二叉堆是完全二叉树或者是近似完全二叉树。
二叉堆满足二个特性:
1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。
2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。
当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小堆
堆排序:
由二叉堆的定义可知,堆顶元素(即...
分类:
其他好文 时间:
2014-07-23 22:34:19
阅读次数:
193
本博文介绍首先介绍直接选择排序,然后针对直接选择排序的缺点改进的“堆排序”,堆排序非常适合:数组规模非常大(数百万或更多) + 严格要求辅助空间的场景。
分类:
其他好文 时间:
2014-07-22 22:46:55
阅读次数:
1802
上节分析了O(n^2)的算法,这节就分析O(nlgn)的算法-归并,快速和堆排序。一:综述 O(nlgn) 的算法可以分为两大类,两者所用的技术差别较大。归并和快速排序采用的是分治策略,这两者相当于一个对称的过程,一个是自顶向上合并子问题,另一个则自上向下分解子问题。而堆排序利用堆这一数据结构元素间...
分类:
其他好文 时间:
2014-07-22 22:36:14
阅读次数:
282
heap
-------------------------------------------------------------------------
binary heap 是一种完全二叉树。
隐式表示法:以 array 表述 tree。
小技巧:将 array 的 #0 元素保留,则第 i 个元素的左右子节点分别是 2i 和 2i + 1,
父节点是i/2 --> STL 里没有采用这种小技巧
将 array 无法动态改变大小,所以用 vector 替代 array
这个文件里提供了各种堆操作的...
分类:
其他好文 时间:
2014-07-22 00:32:34
阅读次数:
256
Sort ListSort a linked list inO(nlogn) time using constant space complexity.算法思想:时间复杂度为O(nlogn)的排序算法,有快排、归并、堆排序,快排需要往前遍历,因此不适合单链表,堆排序可以,但是需要O(n)的空间,因此...
分类:
其他好文 时间:
2014-07-22 00:03:35
阅读次数:
187
原帖地址:http://www.oschina.net/question/1397765_159365 快速排序算法的基本特性: 时间复杂度:O(N * logN) 堆排序为不稳定排序,不适合记录较少的排序。 var arr = [],
count = 100,
i = 0,
parentIndex...
分类:
其他好文 时间:
2014-07-21 10:21:26
阅读次数:
207
采用一维数组建树。(因为一维数组建的是完全二叉树,时间上比用孩子节点指针建树慢,不过基本可以忽略=-=)
#include
#include
#include
using namespace std;
const int INF = 0xffffff0;
int minV=INF;
int maxV=-INF;
struct Node
{
int L,R;
int minV,ma...
分类:
其他好文 时间:
2014-07-20 22:28:44
阅读次数:
216
一:线段树基本概念1:概述线段树,类似区间树,是一个完全二叉树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为O(lgN)!性质:父亲的区间是[a,b],(c=(a+b)/2)左儿子的区间是[a,c],右儿子...
分类:
其他好文 时间:
2014-07-19 13:26:16
阅读次数:
256
先看下堆的概念:堆是一种数据结构,逻辑上是一种完全的二叉树,在存储上是数组对象。
堆分为小顶堆和大顶堆,顾名思义:小顶堆是指顶部的元素是最小的,大顶堆是指顶部的元素师最大的。
这样只要我们能够得到这样的堆,每次将顶部的元素和数列的最后一个元素进行交换,然后再对剩下的元素进行建堆,接着以此类推这样的做法,便可以得到排好的数列了。
根据上面所述,堆排序的关键是:建堆。建堆也分为调堆和建堆过程;...
分类:
其他好文 时间:
2014-07-19 02:47:16
阅读次数:
213
堆有两种: max-heap 和 min-heap. Max-heap 一般用来排序,Min-heap 用来实现 priority queue.max-heap的定义是:for each i: A[parent(i)] >= A[i]min-heap: for each i: A[parent(i)...
分类:
其他好文 时间:
2014-07-18 10:23:12
阅读次数:
180