如何分析一个排序算法
- 排序算法的执行效率
- 最好情况、最坏情况、平均情况时间复杂度
- 时间复杂度的系数、常数、低阶
- 比较次数交换(或移动)次数
- 排序算法的内存消耗
- 原地排序,特指空间复杂度是 O(1)的排序算法
- 排序算法的稳定性
- 如果待排序的序列中存在值相等的元素,经过排序之后,相等元素之间原有的先后顺序不变,则此排序算法是稳定的
平均情况时间复杂度的计算
- 有序度
-
数组中具有有序关系的元素对的个数
-
完全有序的数组的有序度叫做满有序度,n*(n-1)/2,如 1,2,3,4,5
-
- 逆序度
- 逆序度 = 满有序度 - 有序度