排序分为
1、插入排序:直接插入、折半插入、希尔
2、选择排序:简单选择、堆排序
3、交换排序:冒泡、快速
4、归并排序、基数排序
一、排序过程的特点:
1、冒泡排序和堆排序在每趟处理后,都能产生当前的最大值或最小值(即序列头或尾是有序的)
2、简单选择排序和直接插入排序,每趟排序后其前面均为有序
的。
3、交换类:冒泡、快速排序;选择类:简单选择、堆排序每一趟就能确定一个元素的最终位置
。
4、插入类:希尔排序、直接插入排序(特例:最小的在尾部
)、折半插入;归并排序只有到最后一趟
才能产生有序的序列。
5、简单选择排序、归并排序和基数排序时间复杂度
与序列初始状态无关
。
6、直接选择、折半插入比较次数
与序列初始状态无关
。
二、稳定性:
1、稳定:
①插入排序类——直接插入排序、折中排序
②交换排序类——冒泡
③二路归并排序、基数排序
2、不稳定:
①插入排序类——希尔排序
②交换排序类——快速排序
③选择排序类——简单选择排序、堆排序
三、时/空间复杂度: