
数据结构
文章平均质量分 80
sunhaoning
这个作者很懒,什么都没留下…
展开
-
数据结构复习-插入排序
插入排序是一种简单直观的排序方法,其基本思想在于每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中,直到全部记录插入完成。由插入排序的思想可以引申出三个重要的排序算法:直接插入排序、折半插入排序和希尔插入排序。1. 直接插入排序假设在排序过程中,待排序表L[1...n]在某次排序过程中的某一时刻状态如下:有序序列L(i)L(i)无序原创 2017-07-16 23:41:58 · 472 阅读 · 0 评论 -
数据结构复习-线性表的定义和基本操作
1.线性表的定义线性表是具有相同数据类型的n(n≥0)个数据元素的有限序列。其中n为表长,当n=0时该线性表是一个空表。若用L命名线性表,则其一般表示如下:L=(a1,a2,...,ai,ai+1,...,an)其中,a1是唯一的“第一个”数据元素,又称为表头元素;an是唯一的“最后一个”数据元素,又称为表尾元素。除第一个元素外,每个元素有且仅有一个直接前驱。除最后一个元素外,每个原创 2017-07-20 23:31:28 · 483 阅读 · 0 评论 -
数据结构复习-选择排序
选择排序的基本思想是:每一趟(例如第i趟)在后面n-i+1(i=1,2,...,n-1)个待排序元素中选取关键字最小的元素,作为有序子序列的第i个元素,直到第n-1趟做完,待排序元素只剩下1个,就不用再选了。1. 简单选择排序从上面选择排序的思想中可以很直观地得出简单选择排序算法的思想:假设排序表为L[1...n],第i趟排序队列从L[i...n]中选择关键字最小的元素与L(i)交原创 2017-07-17 22:52:23 · 818 阅读 · 0 评论 -
数据结构复习-归并排序和基数排序
1.归并排序归并排序与基于交换、选择等排序的思想不一样,“归并”的含义是将两个或两个以上的有序表组合成一个新的有序表。假定待排序表含有n个记录,则可以看成是n个有序的子表,每个子表长度为1,然后两两归并,得到⌈n/2⌉个长度为2或1的有序表;再两两归并,......如此重复,直到合并成一个长度为n的有序表为止,这种排序方法称为2-路归并排序。Merge()的功能是将前后相邻的两个有序表原创 2017-07-17 23:32:45 · 420 阅读 · 0 评论 -
数据结构复习-交换排序
1. 冒泡排序冒泡排序算法的基本思想是:假设待排序表长为n,从后往前(或从前往后)两两比较相邻元素的值,若为逆序(即A[i-1]>A[i]),则交换它们,直到序列比较完。我们称之为一趟冒泡,结果将最小的元素交换到待排序列的第一个位置。下一趟冒泡时,前一趟确定的最小元素不再参与比较,待排序列减少一个元素,每趟冒泡的结果把序列中的最小元素放到了序列的最终位置,...,这样最多做n-1趟冒泡就能原创 2017-07-17 08:10:43 · 383 阅读 · 0 评论 -
数据结构复习—栈
1. 栈的基本概念1.栈的定义栈(Stack):只允许在一端进行插入或删除操作的线性表。首先栈是一种线性表,但是限定这种线性表只能在某一端进行插入和删除操作,如图所示。 栈顶(Top):线性表允许进行插入和删除的那一端。 栈底(Bottom):固定的,不允许进行插入和删除的另一端。 空栈:不含任何元素的空表。 假设某个栈S=(a1,a2,a3,a4,a5),则a1为栈底元素,a5为栈顶元原创 2017-07-25 16:07:28 · 507 阅读 · 0 评论 -
数据结构复习—队列
1. 队列的基本概念1. 队列的定义队列(Queue):队列简称队,也是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除。向队列中插入元素称为入队或进队;删除元素称为出队或离队。其操作特点是先进先出(First In First Out,FIFO),故又称为先进先出的线性表,如图所示。 队头(Front):允许删除的一端,又称为队首。 队尾(Rear):允许插入的一端。原创 2017-07-25 21:20:23 · 870 阅读 · 0 评论