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