数据结构
文章平均质量分 72
A_lele123
这个作者很懒,什么都没留下…
展开
-
Bogo排序——延伸引发相反思索
最近想看看排序算法,按字母发音排序,我首先看到的是Bogo排序,Bogo排序作者本身不认为是好的排序算法,这是一种靠偶然性排序的算法,但是作为排序算法的一种,还是大体介绍下。对于Bogo排序,很容易让我们想起一个场景,就是我们手中拿着一叠扑克牌,向上抛出,落在地上,我们期待落在地上的时候这些扑克牌是有序的,A-K(我试过没有一次成功,也许是人品问题吧),如果没有没排序好则继续抛,其实Bogo排原创 2013-11-18 14:51:42 · 1069 阅读 · 0 评论 -
数据结构——栈—— 顺序栈(附java实现)
堆栈(英语:stack),也可直接称栈。中国大陆作堆栈,台湾作堆叠,在计算机科学中,是一种特殊的串行形式的数据结构,它的特殊之处在于只能允许在链结串行或阵列的一端(称为堆栈顶端指标,英语:top)进行加入资料(英语:push)和输出资料(英语:pop)的运算。由于堆栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。堆栈数据原创 2013-12-06 13:51:37 · 1888 阅读 · 0 评论 -
数据结构——栈—— 链式栈(附java实现)
通过上一篇文章对顺序栈做了介绍,线性表分为顺序表和链表两种,与此相似,栈也分为顺序栈和链栈。 链栈与顺序栈外在的功能看起来以前,符合栈顶基本性质LIFO,但是在内部实现原理上我想大家一定从名称上就能够区分开,顺序栈元素之间的物理地址是相邻的,而链栈元素之间的物理地址再逻辑上是相邻的,链栈存在空栈的情况,但是不存在溢出(只要内存足够大),也就是说链栈的大小是没有限制的。实现链式栈和原创 2013-12-06 15:07:58 · 1267 阅读 · 0 评论 -
数据结构——队列
前两篇文章介绍了栈,接下来介绍队列,和栈一样,队列也有两种存储结构,顺序队列和链式队列,本文介绍顺序队列。 队列的顺序存储结构称为顺序队列,顺序队列实际上是运算受限的顺序表,顺序队列需要头指针(front)和尾指针(rear)分别指向队头和对尾,根据队列的性质(FIFO),当进行入队操作时,从队尾增加,队尾指针加一(rear=rear+1),当进行出对操作时,返回队头元素并且队头原创 2013-12-09 14:11:21 · 932 阅读 · 0 评论 -
二叉树性质总结
性质1:二叉树第i(i>=1)层上的节点数最多为2^(i-1)证明:归纳基础:第一层有一个节点,第二层最多有两个节点,第三层最多有四个节点,以此类推,数学归纳法证明如下:i=1时,2^(i-1)=2^0=1,因为第一层上为根节点,所以命题成立。归纳假设:假设对所有的j(1归纳步骤:根据归纳假设,第i-1层上至多有2(i-2)个节点,由于二叉树每个节点至多有两个孩子节点,所以第i原创 2013-12-10 11:20:25 · 1290 阅读 · 0 评论 -
插入排序
插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 在《算法导论》一书中给出了一个形象生动的例子,原创 2013-12-05 15:40:08 · 766 阅读 · 0 评论