数据结构和算法
文章平均质量分 87
我只是一个单纯的2
这个作者很懒,什么都没留下…
展开
-
数据结构--栈
(stack)又名堆栈: 它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈(push),它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈(pop),它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。因此对于栈而言,最重要的性质就是后入先出。 在数据原创 2016-03-09 22:08:17 · 788 阅读 · 0 评论 -
数据结构--插入排序
算法中经常会用到各种各样的算法,比较简答的思想就是冒泡排序,一般刚开始编程时遇到排序问题时,会很容易想到冒泡排,冒泡排序是通过两辆比较数值,从而将数字移动到开始或者末尾的位置,反复重复这个过程从而就达到了排序的目的。其时间复杂度大概是Ο(n2)。还有一种比较常用的插入排序,其思想与冒泡排序比较类似。下面来逐步讲解插入排序的思想: 1、首先考虑到将一个数字插入到一个有序表中,这里有序表代表可以是非原创 2016-04-14 20:35:56 · 686 阅读 · 1 评论 -
数据结构--迭代归并
归并最初的使用在与两个有序表的合并,从而引出对待排序数列的排序。两个有序表的合并在于合并之后,合并的表仍然有序。比如: 有序表(1):1 3 4 4 6 有序表(2):2 3 3 5 8 最后归并的的有序表为:1 2 3 3 4 4 5 6 8 当然,实现两个有序表的实现是比较简单容易的,为了不仅仅实现两张有序表的归并,而是为了用于之后原创 2016-04-19 13:31:54 · 1195 阅读 · 0 评论 -
数据结构--快速排序
快速排序是一种平均性能比较好的排序方法,它的平均性能是Ο(nlogn)。快速排序的算法思想是: 1、选取待排序记录中的一项作为qvoit,即枢轴,以此作为基准,首先将待排序序列分为两类,一类是比排序序列大的,在基准的右边。一类是比基准小的,在基准的左边,当然这里排序的出发点是从左到右非递减序列。 2、对左边序列重复步骤一的过程;即递归调用函数;原创 2016-04-15 14:44:26 · 587 阅读 · 0 评论 -
数据结构--二叉树的遍历
二叉树的概念 二叉树作为最常见以及最常用的的结构,其特点是对于每一个父节点,最多包含两个节点,因此对于一个二叉树,可以将其分为三个部分,根节点,左子树和右子树。一般来说,存储结构分为线性存储结构和链式存储结构。线性存储结构一般来说是以数组的方式呈现的,其特点是在内存中表现为连续的空间分配。而对于链式存储结构,在逻辑上是有种某种关系,比如逻辑连续,但是在实际物理的内存空间上的分配上,却没有任何的规原创 2016-04-19 21:22:21 · 692 阅读 · 0 评论 -
数据结构--二叉堆与堆排序
二叉堆的概念 二叉堆,BinaryHeap,是二叉树中的常见的一种结构。通常以最大堆和最小堆的形式呈现。最大堆指的是父节点大于等于孩子节点的value值,也就是说对于最大堆而言,根元素是二叉堆最大的元素。最小堆的概念是与最大堆的概念是相似的。原创 2016-04-24 22:38:04 · 4879 阅读 · 0 评论