码迷,mamicode.com
首页 >  
搜索关键字:大堆。小堆    ( 8个结果
【数据结构】——堆及其应用
一、堆先说说堆概念:如果有一个关键码的集合K={k0,k1,k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Ki<=K2i+1且Ki<=K2i+2(Ki>=K2i+1且Ki>=K2i+2)i=0,1,2…,则称为小堆(或大堆)。小堆(大堆)中:任一结点的关键码均小于(大于)等于它的左右孩子的关键码,位于堆顶结点的关键码最小(最大)
分类:其他好文   时间:2018-02-26 11:43:25    阅读次数:136
(一)选择排序之一:堆排序
选择排序学过的有三种:简单选择排序、树形选择排序、堆排序 今天先来简单的了解一下堆排序: 完全二叉树,即从头到尾,从左到右依次排序,符合大堆(小堆)都行,即ki>=k2i && ki >= k2i+1 由于此处使用的是数组,则最长为array.length-1,并且 ki>=k2i+1 && ki ...
分类:编程语言   时间:2016-09-06 15:30:58    阅读次数:202
大/小堆:源代码
#pragmaonce #include<vector> #include<assert.h> // //小堆==大堆 //仿函数 // template<classT> structGreater { booloperator()(constT&l,constT&r) { returnl>r; } }; template<classT> structLess { booloperator()(constT&..
分类:其他好文   时间:2016-08-26 23:09:02    阅读次数:201
堆的一些简单应用
查找数据10000个数中找出最大的前100个数创建一个100个数的小堆,最上面的数是这100个数中最小的;然后依次遍历(从101到10000),如果比它大,替换它。代码实现如下:https://github.com/HandsomeBoby/Heap/blob/master/GetTopK.h堆排序使用大堆进行数组的排序代码实现如下:h..
分类:其他好文   时间:2016-05-24 22:53:25    阅读次数:181
数据结构-----堆的基本操作和应用
(一)用仿函数实现大堆小堆堆数据结构是一种数组对象,它可以被视为一棵完全二叉树结构。堆结构的二叉树存储是最大堆:每个父节点的都大于孩子节点。最小堆:每个父节点的都小于孩子节点。仿函数(functor),就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operat..
分类:其他好文   时间:2016-05-13 05:19:40    阅读次数:179
堆的简单实现(仿函数)
堆数据结构是一种数组对象,它可以被视为一棵完全二叉树结构。最大堆:每个父节点的都大于孩子节点。最小堆:每个父节点的都小于孩子节点。堆结构的二叉树存储是:代码实现如下:#pragmaonce #include<iostream> #include<vector> #include<assert.h> usin..
分类:其他好文   时间:2016-05-13 04:45:55    阅读次数:169
堆的实现(大小堆及 优先队列
一、堆的概念堆数据结构是一种数组对象,它可以被视为一棵完全二叉树结构。堆结构的二叉树存储是:最大堆:每个父节点的都大于孩子节点。最小堆:每个父节点的都小于孩子节点。堆栈中的物体具有一个特性:最后一个放入堆栈中的物体总是被最先拿出来,这个特性通常称为后进先出(..
分类:其他好文   时间:2016-04-27 14:18:25    阅读次数:220
【优先队列】POJ1422-Black Box
【思路】建立一个小堆和一个大堆。大堆用来存放第1..index-1大的数,其余数存放在大堆,小堆的堆顶元素便是我们要求出的第index大的数。每次插入一个A(n),必须保证大堆中数字数目不变,故先插入小堆中。若此时小堆堆顶小于大堆堆顶,则交换堆顶元素;每次Get(),输出小堆的堆顶元素,并将它并入大...
分类:其他好文   时间:2015-07-16 11:25:49    阅读次数:149
8条  
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!