码迷,mamicode.com
首页 >  
搜索关键字:小堆    ( 496个结果
My集合框架第六弹 左式堆
左式堆(Leftist Heaps)又称作最左堆、左倾堆。左式堆作为堆的一种,保留了堆的一些属性。第1,左式堆仍然以二叉树的形式构建;第2,左式堆的任意结点的值比其子树任意结点值均小(最小堆的特性)。但和一般的二叉堆不同,左式堆不再是一棵完全二叉树(Complete tree),而且是一棵极不平衡的...
分类:其他好文   时间:2015-03-12 18:45:31    阅读次数:151
堆排序之Java实现
堆排序思想:堆排序,顾名思义,就是基于堆。堆分为最大堆和最小堆,事实上就是全然二叉树。最大堆要求节点的元素都要大于其孩子,最小堆要求节点元素都小于其左右孩子,两者对左右孩子的大小关系不做不论什么要求,事实上非常好理解。有了上面的定义,我们能够得知,处于最大堆的根节点的元素一定是这个堆中的最大值。事实...
分类:编程语言   时间:2015-03-12 16:52:55    阅读次数:148
算法导论-堆排序
堆排序的时间复杂度是,具有空间原址性,即任何时候都只需要常数个额外的元素空间存储临时数据。一、堆二叉堆是一个数组,可看成一个近似的完全二叉树,树上的每个结点对应数组中的一个元素。除了最底层外,该树是完全充满的,而且是从左到右填充。二叉堆可以分为两种形式:最大堆和最小堆。在最大堆中除根节点外所有结点i...
分类:编程语言   时间:2015-03-11 19:04:58    阅读次数:172
算法导论学习之堆+堆排序+堆构成优先队列
注:堆分为最大堆和最小堆两种,下面我们讨论的堆都是指的最大堆,最小堆的性质与其是类似的。堆数据结构是一种数组对象,可以被视为一棵完全二叉树(这棵二叉树除最后一层外,其余每层都是填满的);我们用一个数组来存储一个堆,表示堆的数组有两个属性:length[A]表示的是数组中的元素个数,headsize[A]表示堆中元素个数(也就是说数组中的元素不一定都是堆中的元素)。 下面不加证明的给出一些堆的性质:...
分类:编程语言   时间:2015-03-11 00:46:49    阅读次数:192
数据结构 二叉堆 & 堆排序
二叉堆,是一个满二叉树,满足堆的性质。即父节点大于等于子节点(max heap)或者是父节点小于等于子节点(min heap)。二叉堆的如上性质常用于优先队列(priority queue)或是用于堆排序。 由于max heap 与min heap类似,下文只针对min heap进行讨论和实现。 如上图,是根据字母的ASCII码建立的最小堆。 我们用数组对满二叉树采用宽度优先遍历存储...
分类:编程语言   时间:2015-03-07 15:41:40    阅读次数:178
My集合框架第五弹 最小堆
二叉堆(以最小堆为例),其具有结构性质和堆序性质结构性质: 堆是一棵完全的二叉树,一颗高为h的完全二叉树有2^h到2^h-1个节点,高度为log N 而且该结构可以很容易的使用数组来表示:对于数组中任一位置i上的元素,其左儿子在位置2i上,右儿子在2i+1,其父节点在[x/2]处堆序性质:在一...
分类:其他好文   时间:2015-03-05 22:04:05    阅读次数:178
最大(小)堆初始化,插入,删除,及利用其排序实现
#include #define pb push_back#define mp make_pair#define esp 1e-8//#define lson l, m, rt>>>>>\n";#define TL cerr MPS;typedef pair PII;typedef MPS::...
分类:编程语言   时间:2015-03-02 16:27:55    阅读次数:237
LeetcodeOJ: Merge k Sorted Lists 归并排序+最小堆
1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), ne...
分类:编程语言   时间:2015-02-18 14:04:12    阅读次数:148
【数据结构】排序番外篇 堆,堆排序与其前身选择排序
堆优先队列:特殊的”队列”,取出元素的顺序是依照元素的优先权(关键字)大小,而不是元素进入队列的先后顺序 堆是优先队列的完全二叉树表示。 堆的两个特性: ①结构性:用数组表示的完全二叉树 ②有序性:任意结点的关键字是其子树所有结点的最大值,叫最大堆(或最小值,叫最小堆)(注意从根结点到任意结点路径上结点序列的有序性)下面举一个最大堆的例子。 /** 最大堆的操作 */ typedef st...
分类:编程语言   时间:2015-02-17 22:21:37    阅读次数:231
转:最小堆的数组实现
最小堆的数组实现//**************minHeap.h****************////******最小堆的类定义和各操作的实现*******////C++源码#ifndef MINHEAP_H#define MINHEAP_H#include using namespace st...
分类:编程语言   时间:2015-02-16 18:17:05    阅读次数:185
496条   上一页 1 ... 39 40 41 42 43 ... 50 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!