数据结构与算法
guanyasu
这个作者很懒,什么都没留下…
展开
-
经典算法题--河内之塔
1.河内之塔说明河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市;1883年法国数学家 Edouard Lucas曾提及这个故事,据说创世纪时Benares有一座波罗教塔,是由三支钻石棒(Pag)所支撑,开始时神在第一根棒上放置64个由上至下依由小至大排列的金盘(Disc),并命令僧侣将所有的金转载 2016-11-28 22:31:36 · 409 阅读 · 0 评论 -
B-树详细分析及B树B-树B+树B*树概念
B- 树是为了磁盘或其它存储设备而设计的一种多叉(下面你会看到,相对于二叉,B树每个内结点有多个分支,即多叉)平衡查找树。B- 树又叫平衡多路查找树。一棵m阶的B 树 (m叉树)的特性如下:树中每个结点最多含有m个孩子(m>=2);除根结点和叶子结点外,其它每个结点至少有[ceil(m / 2)]个孩子(其中ceil(x)是一个取上限的函数);若根结点不是叶子结点,则至转载 2016-12-03 11:04:57 · 25652 阅读 · 5 评论 -
二项队列分析及实现
定义: 二项队列不同于左式堆和二叉堆等优先队列的实现之处在于,一个二项队列不是一棵堆序的树,而是堆序树的集合,即森林。堆序树中的每棵树都是由约束形式的,叫做二项树。每一个高度上至多存在一棵二项树。高度为0的二项树是一颗单节点树,高度为k的二项树Bk通过将一棵二项树Bk-1附接到另一颗二项树Bk-1的根上而构成。下图显示二项树B0,B1,B2,B3以及B4。转载 2016-12-06 16:00:39 · 2043 阅读 · 1 评论 -
作式堆分析和实现
介绍:定义: 左式堆(Leftist Heaps)又称作最左堆、左倾堆,是计算机语言中较为常用的一个数据结构。左式堆作为堆的一种,保留了堆的一些属性。第1,左式堆仍然以二叉树的形式构建;第2,左式堆的任意结点的值比其子树任意结点值均小(最小堆的特性)。但和一般的二叉堆不同,左式堆不再是一棵完全二叉树(Complete tree),而且是一棵极不平衡的转载 2016-12-07 23:40:09 · 710 阅读 · 0 评论 -
基数排序(链表运用)
基于两两比较的算法,算法的运行下界为Ω(nlogN),如果想再降低时间复杂度,只能通过其他的非基于比较的方法。基数排序就是一种方法,其时间复杂度为O(N)基数排序的过程,假设有4个数,我们用链表把他们连一起,这4个数为321 892 538 439第一步:我们先创建10个链表,L0~L9,然后按4个数的个位的数字,依次接到相应链表的后面L0转载 2016-11-27 23:01:04 · 877 阅读 · 0 评论