【数据结构】第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位数比较好演示,换个例子: