排序的三中古老的方法,选择排序,插入排序,冒泡排序。
一般来说,我们用得到的也就只有插入排序,选择排序和冒泡排序的用处不大,只适合作为开拓视野而用。
为什么这么说呢?
这就要从排序算法的分析说起了。
分析排序算法,从排序算法的执行效率,内存消耗和稳定性三方面入手
排序算法的执行效率,也从三个方面衡量:
1,最好情况,最坏情况,平均情况的时间复杂度
2,时间复杂度的系数,常数,低阶
其实这些在规模到了一定程度后是不能忽视的,
3,比较次数和交换次数
内存消耗,通过空间复杂度来衡量。有一个概念叫“原地排序”,就是特指空间复杂度为O(1)的算法,选择,插入,冒泡都是原地排序
稳定性,就是指排序过程中,相等元素之间原有的先后顺序不变。
冒泡排序和插入排序在上图额比较中是差不多的,但冒泡排序的时间复杂度比插入排序的要复杂的多,所以还是选择插入排序。