码迷,mamicode.com
首页 >  
搜索关键字:完全二叉树    ( 970个结果
顺序容器(幕后英雄) — heap
heap不属于STL容器,它扮演者priority queue的助手。heap是一种完全二叉树,可由数组来实现,但heap需要动态改变大小,所以最终选择了vector作为底层容器。STL默认提供最大堆。 题外话:分析heap的源码就能清楚的理解堆这种数据结构的例程,而STL库代码的质量又很高,所以看堆的代码,STL源码是一个很好的选择。 为了满足完全二叉树的性质,新插入的元素一...
分类:其他好文   时间:2014-07-22 23:04:53    阅读次数:363
Heap sort
经典排序算法 - 堆排序Heap sort堆排序有点小复杂,分成三块第一块,什么是堆,什么是最大堆第二块,怎么将堆调整为最大堆,这部分是重点第三块,堆排序介绍第一块,什么是堆,什么是最大堆什么是堆这里的堆(二叉堆),指得不是堆栈的那个堆,而是一种数据结构。堆可以视为一棵完全的二叉树,完全二叉树的一个...
分类:其他好文   时间:2014-05-22 00:05:09    阅读次数:319
最优二叉树
树的路径长度树的路径长度是从树根到树中每一结点的路径长度之和。在结点数目相同的二叉树中,完全二叉树的路径长度最短。树的带权路径长度(weighted path length of tree,wpl)结点的权值:在一些应用中,赋予树中结点的一个有某种意义的实数、结点的带权路径长度:结点到树根之间的路径...
分类:其他好文   时间:2014-05-21 19:02:14    阅读次数:305
阿布学排序之堆排序
/** * 需求:堆排序的实现 * 知识储备: * 满二叉树:除叶子结点外的所有结点均有两个子结点,所有叶子结点必须在同一层上。 * 完全二叉树: * 若二叉树的深度为h,除第h层外,其它各层(1~h-1)的节点数都达到最大个数,第h层所有结点都连续集中在最左边。 * 完全二叉树是有满二叉树而引出来的,对于深度为K的,有N个结点的二叉树,当且仅当每一个结点都与深度为K的满二叉树中编号从...
分类:其他好文   时间:2014-05-15 23:48:56    阅读次数:477
排序 之 堆排序 归并排序
堆的概念 堆是具有下列性质的完全二叉树:每个节点的值都大于或等于其左右孩子结点的值,称为大顶堆;或着每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。 堆排序 堆排序(Heap Sort)就是利用堆(假设利用大顶堆)进行排序的方法。它的基本思想是,将待排序的序列构造成一个大顶堆。此时,整个序列...
分类:其他好文   时间:2014-05-15 16:18:31    阅读次数:329
堆是完全二叉树,一个大小为n的堆为一棵包含n个节点的完全二叉树。完全二叉树的根称为堆顶。当堆中每个节点的关键字值大于等于其双亲节点的关键字值,这样的堆称为最小堆,当子节点的值都小于等于其父节点时,称为最大堆。...
分类:其他好文   时间:2014-05-11 13:58:15    阅读次数:202
leetcode第一刷_Populating Next Right Pointers in Each Node
这道题之前没见过,一上来还真不知道怎么做。问题的限制条件,树是完全二叉树其实并不是关键,只不过是一个简化的条件而已。那关键是什么呢?如何从当前节点跳到下一个开始的节点。我的做法是,每次从一层的最左边节点开始,一层一层的走。其实只有两种形式的next指针需要我们来更新,第一种,同一个节点的左右孩子,第二种,父亲相邻时,左边父亲的右孩子和右边父亲的左孩子之间。完全二叉树的简化就体现在更新的过程,因为完...
分类:其他好文   时间:2014-05-08 04:02:43    阅读次数:324
HDU 2292
http://acm.hdu.edu.cn/showproblem.php?pid=2292题意:1-n个节点,题目给出了完全二叉树的定义(这个定义似乎有歧义,此题以题目描述为准),且要保持最小堆性质(根节点小于左右子树内的任意元素),问有多少种不同组合解法:dp,dp[n]表示n个元素的合法排列数...
分类:其他好文   时间:2014-05-07 16:58:58    阅读次数:300
经典白话算法之堆排序
前序: (二叉)堆数据结构是一种数组对象,它可以被视为一棵完全二叉树。树中每个节点与数组中存放该节点值的那个元素对应。 树的每一层都是填满的,最后一层除外。 树的根为a[1] (在这里是从1开始的,也可以从0开始),给定了某个节点的下标i,其父节点为i/2,左二子为2*i,右儿子为2*i+1。 二叉堆满足二个特性: 1.父结点的键值总是大于或等于(小于或等于)任何一个...
分类:其他好文   时间:2014-04-30 22:15:38    阅读次数:434
基于比较的算法之五:堆排序
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。通常堆是通过一维数组来实现的。在起始数组为 0 的情形中:父节点i的左子节点在位置 (2*i+1);父节点i的右子节点在位置...
分类:其他好文   时间:2014-04-30 17:13:32    阅读次数:464
970条   上一页 1 ... 95 96 97
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!