简单排序算法
前面已经说了,简单排序算法是一类算法,指那些直观、易理解的排序算法的总和。
到现在为止,我们已经讲了的三种排序算法:选择排序、起泡排序和插入排序,都属于简单排序算法。
这三种算法有许多性能上的共性,本章就我们来类比看看。
时间复杂度
排序的时间复杂度
假设我们要排列的数值共有 $n$ 个,那么排序算法的时间复杂度应该是大 $O$ 符号下一个 $n$ 的函数——$O f(n)$。
排序算法的时间复杂度不能一概而论,而是要区分最好情况,最坏情况和一般情况:
最好情况是指待排数列原本就是有序的;
最坏则是指待排数列是倒序的;
最好最坏和介于两者之间的各种情况的综合属于一般(平均)情况。
最坏时间复杂度
我们先来看看最坏情况。最坏情况对应到实际中,是给一个倒序的数列排序。
从代码的角度来看,就是将一个算法