分析一个“排序算法”:
排序算法的执行效率
1、最好情况、最坏情况、平均情况时间复杂度(有序度)
2、时间复杂度的系数、常数、低阶
3、比较次数和交换(或移动)次数
排序算法的内存消耗(原地排序)
排序算法的稳定性
原地排序 | 稳定性 | 时间复杂度 | 含义 | |
冒泡排序 | 是 | 是 | 最好 O(n) 平均 (有序度、逆序度、满有序度)(最好+最快)/2 | |
插入排序 | 是 | 是 | 最好 O(n) 最坏 O(n2) 平均 O(n2) | |
选择排序 | 是 | 否 | 先找到最小元素,再找到指定的坑 |
思考:1、归并排序怎么保证合并之前的数组是有序的?因为到最后的粒度会变成1个元素进行比较
2、归并排序,相等情况,先把前面一个数放到数组里,是稳定排序