软考——常用排序算法

目录

1,直接插入排序

2,折半插入排序

3,希尔排序

4,冒泡排序

5,快速排序

6,简单选择排序

7,堆排序

8,归并排序 


各种排序方法的特性

软考——常用排序算法_第1张图片 

软考——常用排序算法_第2张图片

稳定性若在待排序的一个序列中,Ri和Rj的关键码相同,即Ri=Rj,且在排序前Ri领先于Rj,那么当排序后,如果Ri和Rj的相对次序保持不变,Ri依然领先于Rj,则称此类排序算法是稳定的,否则就是不稳定的

内部排序指待排序记录全部存放在内存中进行排序的过程

外部排序指待排序记录的数量很大,以至内存不能容纳全部记录,在排序过程中尚需对外存进行访问的排序过程

1,直接插入排序

是一种最简单的排序算法,其基本操作是将一条记录插入到已排好序的有序表中,从而得到一个新的、记录数量增1的有序表。当有序表为空时,该记录插入在有序表第一位。

直接插入排序的时间复杂度O(n^{2}) ,空间复杂度O(1)

软考——常用排序算法_第3张图片

2,折半插入排序

折半插入排序是通过折半查找来实现的。

时间复杂度是O(n^{2}),空间复杂度是O(1)

软考——常用排序算法_第4张图片

 3,希尔排序

希尔排序实质上是采用分组插入的方法。

先将整个待排序记录序列分割成几组,从而减少参与直接插入排序的数据量,对每组分别进行直接插入排序,然后增加每组的数据量,重新分组

这样当经过几次分组排序后,整个序列中的记录“基本有序”时,再对全体成员进行一次直接插入排序

时间复杂度是O(n^{3/2}),空间复杂度是O(1)

软考——常用排序算法_第5张图片

 4,冒泡排序

是一种最简单的交换排序方法,它通过两两比较相邻记录的关键字,如果发生逆序,则进行交换,使得小的记录往左移,大的记录往右移

时间复杂度是O(n^{2}),空间复杂度是O(1)

软考——常用排序算法_第6张图片

 5,快速排序

快速排序实质上就是每次从待排序记录序列中选出一个基准元素,把比基准元素小的放在基准元素的左边,比基准元素大的放在基准元素的右边。然后对基准元素左右的记录序列继续进行排序

软考——常用排序算法_第7张图片

 6,简单选择排序

也称为直接选择排序。每一趟从第一个元素开始,进行比较,每一趟选出待排序记录序列中的最小值,放在已排序好的记录序列的最后面

时间复杂度为O(n^{2}),空间复杂度为O(1)

软考——常用排序算法_第8张图片

7,堆排序

大根堆:根结点的值 >=(大于等于)左右子节点的值

小根堆:根结点的值 <=(小于等于)左右子节点的值

知识点记住,具体运行过程有印象即可。

 软考——常用排序算法_第9张图片

 8,归并排序

归并排序就是将两个或两个以上的有序表合并成一个有序表的过程

将两个有序表合并成一个有序表的过程称为2—路归并,2—路归并最为简单和常用

软考——常用排序算法_第10张图片

 

你可能感兴趣的:(软件资格考试,排序算法,算法)