如何分析排序算法(时间复杂度、空间复杂度、稳定性)
1、排序算法的执行效率
- 最好情况,最坏情况,平均情况时间复杂度(有序和无序的数据,对时间复杂度有影响)
冒泡排序最好情况数据已经有序,时间复杂度为O(n);最坏情况数据是倒序,要进行n次冒泡,时间复杂度为O(n2);
平均情况下,时间复杂度为O(n2)。
- 时间复杂度的系数、常数、低阶
- 比较次数和交换(或移动)次数
2、排序算法的内存消耗
原地排序算法:特指空间复杂度是O(1)的排序算法。冒泡、插入和选择排序都为原地排序算法
3、排序算法的稳定性
稳定性是指,待排序元素中有相同元素,排序后相同元素之间原有的顺序不变
冒泡排序
python实现冒泡排序:
def bubble_sort(list1