【数据结构】第8章 排序 12,2,16,30,28,10,16*,20,6,18

【直接插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、树形选择排序、堆排序、归并排序、基数排序】
不理解的地方看这个动画


设待排序的关键字序列为{12,2,16,30,28,10,16*,20,6,18},试分别写出使用1~9排序方法,每趟排序结束后关键字序列的状态。

1、直接插入排序(插入)*

把每一个数依次插入一个新数组
在这里插入图片描述

2、折半插入排序(插入)

同直接插入排序
在这里插入图片描述

3、希尔排序(插入)*

增量递减选取,直到最后一个为1
在这里插入图片描述

4、冒泡排序(交换)*

若前面的比后面的数大,交换每相邻的两个
在这里插入图片描述

5、快速排序(交换)*

看图:
在这里插入图片描述
在这里插入图片描述

6、简单选择排序(选择)*

每次挑最小的放到前面
在这里插入图片描述

7、树形选择排序(选择)

同简单选择排序
在这里插入图片描述

嘤嘤嘤10个的不知道怎么画。。。8个是这样:
在这里插入图片描述

8、堆排序(选择)

同简单选择排序
在这里插入图片描述
嘤也是并不知道怎么画。。

9、归并排序*

每次两块两块的合并
在这里插入图片描述

9、基数排序*

3位数比较好演示,换个例子:
在这里插入图片描述在这里插入图片描述