上节简单讲了递归算法,今天我们讲讲排序算法。
排序算法设计的比较多,今天我们先聊聊简单的三种比较排序:冒泡排序,插入排序,选择排序。
冒泡排序:
从第一个开始,跟后面的比较,如果前面的大,就跟后面的交换,依次类推,比较完一轮后选出最大的。这样比较n轮,就全部比较完。
平均时间复杂度为:O(n^2)
插入排序:
分为有序和其它两段,从第二段第一个开始依次跟前面(是排好序的)的对比,放在对应的位置,直到将第二段的全部对比完。
平均时间复杂度为:O(n^2)
选择排序:
同样分为有序和其它两段,在第二段选择最小的跟第一段第一个交换,然后再选最小的跟第二个交换,依次类推。
平均时间复杂度为:O(n^2)
三个对比:
插入排序性能相对最好,实用性最高,其它两个特殊场景使用即可。