基本有序
- 直接插入
- 冒泡
无序-快排
- 有序时候快排反而慢
- 给序列2 1 4 9 8 10 6 20问两趟排序后结果
- 排序后比对 有两个确定最终位置-左小右大
简单选择,归并与初态无关
- 直接插入排序,基本有序效率最高
- 快速排序,无序效率最高,有序反而低
- 简单选择,归并与初始状态无关
关于第一趟
冒和选择一趟结束能有一个元素处于最终位置
简单选择排序,能够取出当前无序序列中最(小or大)值与第一位置的元素互换位置。
堆排序每趟总能选出一个最值位于根节点。
冒泡排序总是两两比较选出一个最值位于数组前面。
快速排序选出的枢轴在一趟排序中就位于了它最终的位置
插入排序(直接、二分)不一定会位于最终的位置,因为不确定后面插入的元素对于前面的元素是否产生影响。
希尔排序(本质也是插入排序)只在子序列中直接插入排序。所以不能确定。
二路归并排序除非在缓存区一次放入所有的序列(这样得不偿失),否则不能确定最终位置。
所以能够在一趟结束后,就选出一个元素在其最终的位置上的排序是否就只有 :
简单选择排序、快速排序、冒泡排序、堆排序