排序算法的执行效率
最好情况、最坏情况、平均情况下的时间复杂度
除了最好情况、最坏情况、平均情况下的时间复杂度之外,我们还要说出最好、最坏时间复杂度对应的要排序的原始数据是怎样的。
时间复杂度的系数、常数、低阶
时间复杂度反应的是数据规模 n 很大的时候的一个增长趋势,所以她表示的时候会忽略系数、常数、低阶。但是实际开发中,排序可能是10、100、1000这样的小规模数据,所以在对同一阶时间复杂度的排序算法性能对比的时候,我们就要把系数、常数、低阶也考虑进来。
比较次数和交换(或移动)次数
基于比较的排序算法的执行过程,会涉及两种操作,一种是元素比较大小,另一种是元素交换或移动。所以,如果我们在分析排序算法的执行效率的时候,应该把比较次数和交换(或移动)次数也考虑进去。
排序算法的内存消耗
算法的内存消耗可以通过空间复杂度来衡量,排序算法也不例外。不过,针对排序算法的空间复杂度,我们还引入了一个新的概念,原地排序(Sorted in place)。原地排序算法,就是特指空间复杂度是 O(1) 的排序算法。
稳定性。这个概念是说,如果待排序的序列中存在值相等的元素,经过排序之后,相等元素之间原有的先后顺序不变。


