码迷,mamicode.com
首页 >  
搜索关键字:二叉树 堆排序    ( 12327个结果
树的深度优先与广度优先遍历
简述树的深度优先及广度优先遍历算法,并说明非递归实现。原题出自百度的笔试:当时我看到这个题目的时候,已经完全记不得非递归算法该怎么实现了,后来查阅了一下,要用到两个辅助的数据结构:深度优先遍历--->栈;广度优先遍历--->队列;这里以二叉树为例来实现。import java.util.ArrayD...
分类:其他好文   时间:2014-05-20 02:33:07    阅读次数:425
算法导论第六章 堆排序
主要内容: 堆、最大堆、最小堆的基本概念 堆的操作:调整、创建、排序 采用堆实现优先级队列 基本概念 堆(heap)亦被称为:优先队列(priority queue) 逻辑定义: n个元素序列{k1,k2...ki...kn},当且仅当满足下列关系时称之为堆: (ki = k2i,ki >= k2i...
分类:其他好文   时间:2014-05-19 08:45:41    阅读次数:264
笔试算法题(06):最大连续子数组和 & 二叉树路径和值
出题:预先输入一个整型数组,数组中有正数也有负数;数组中连续一个或者多个整数组成一个子数组,每个子数组有一个和;求所有子数组中和的最大值,要求时间复杂度O(n);分析:时间复杂度为线性表明只允许一遍扫描,当然如果最终的最大值为0表明所有元素都是负数,可以用线性时间O(N)查找最大的元素。具体算法策略...
分类:其他好文   时间:2014-05-18 20:21:35    阅读次数:339
【数据结构】二叉树遍历
先序遍历和中序遍历非递归代码:#include #include using namespace std;typedef struct BinaryTree { int data; struct BinaryTree *rchild, *lchild;}BinaryTree;int cr...
分类:其他好文   时间:2014-05-17 21:56:50    阅读次数:264
阿布学排序之堆排序
/** * 需求:堆排序的实现 * 知识储备: * 满二叉树:除叶子结点外的所有结点均有两个子结点,所有叶子结点必须在同一层上。 * 完全二叉树: * 若二叉树的深度为h,除第h层外,其它各层(1~h-1)的节点数都达到最大个数,第h层所有结点都连续集中在最左边。 * 完全二叉树是有满二叉树而引出来的,对于深度为K的,有N个结点的二叉树,当且仅当每一个结点都与深度为K的满二叉树中编号从...
分类:其他好文   时间:2014-05-15 23:48:56    阅读次数:477
【数据结构】Trie树
1.Trie树简介 Trie树,又称字典树、前缀树,被用于信息检索(information retrieval)的数据结构。Trie一词便来自于单词retrieval。基本思想:用字符串的公共前缀降低查询时间。比如,在最优的查询二叉树中查询关键字的时间复杂度为M * log N,M是字符串最大长度,N为字符串数量;而用Trie树时,只需O(M)时间。 [1] 中给出一个简单...
分类:其他好文   时间:2014-05-15 23:36:16    阅读次数:394
Binary Tree Zigzag Level Order Traversal
原题: 题目解析:这个问题的实质是要我们按成访问二叉树的结点,并返回每层访问的结果,这里要求走Z字,其实就是一行正向一行反向。 /* the kernel idea is visit a binary search tree in level and the additional work we have to label the end of one level. */ v...
分类:其他好文   时间:2014-05-15 23:18:46    阅读次数:515
Segment Tree - Sum of given range
简单点说其实Segment Tree就是二分法的灵活运用。 需要的基础知识: 1 二分法 2 二叉树 3 最好熟悉堆排序 操作就是二分法和堆排序巧妙地合并起来。 有了这些基础知识Segment Tree就没有任何难度了。 参考原文: http://www.geeksforgeeks.org/segment-tree-set-1-sum-of-given-range/ ...
分类:其他好文   时间:2014-05-15 13:33:33    阅读次数:250
数据结构--线索二叉树
我们先来看一张之前整理过的一张二叉树的链式存储结构 1、每个数据域,都有2个指针域,分别指向该节点的左孩子、右孩子,但是每个节点前驱、后继,要知道的话需要遍历整棵树,这在时间上耗费很大。 2、另外,在叶子节点中,我们可以看到如图,每个节点都会浪费2块存储空间,N个节点的二叉树,2N个指针域,连接线为2N-1,那么会有2N-(N-1) = N+1个指针域浪费掉。 为了优化以上2...
分类:其他好文   时间:2014-05-15 13:30:19    阅读次数:283
KDTree 解析 、构建
KDTree是每个节点都为k维点的二叉树。所有非叶子节点可以视作用一个超平面把空间分割成两部分。在超平面左边的点代表节点的左子树,在超平面右边的点代表节点的右子树。超平面的方向可以用(n mod k)...
分类:其他好文   时间:2014-05-15 13:05:27    阅读次数:233
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!