一、算法优劣评判
- 稳定:如果 a 原本在 b 前面,而 a = b,排序之后 a 仍然在 b 的前面;
- 不稳定:如果 a 原本在 b 前面,而 a = b,排序之后 a 可能会出现在 b 的后面;
- 内排序:所有排序操作都在内存中完成;
- 外排序:由于数据太大,因此把数据放在磁盘,而排序通过磁盘和内存中的数据才能进行排序
- 时间复杂度:一个算法执行所消耗的时间;
- 空间复杂度:运行完一个算法所需内存的大小;
二、排序算法
三、时间复杂度的推导
算法的时间复杂度是表示算法所消耗时间大小的量度,通常使用 大O表示法 来建立数学模型,即 O(f(n)),随着 n 的数值增大,O(f(n)) 的数值增长的越慢就越是时间复杂度低的算法。
- 用常数 1 取代运行时间中的所有加法常数。
- 在修改后的运行次数函数中,只保留最高阶项。
- 如果最高阶项存在且不是1,则去除与这个项相乘的常数。得到的结果就是大O阶。