Skip to content

排序算法

排序算法是一类算法,其核心目的是将一组数据按照特定顺序重新排列。 通常,这个顺序是按照数字的大小或字母的顺序进行的。

  • 数值排序 image.png
  • 自定义规则排序

评价维度

运行效率:我们期望排序算法的时间复杂度尽量低,且总体操作数量较少(时间复杂度中的常数项变小)。对于大数据量的情况,运行效率显得尤为重要。 就地性:顾名思义,原地排序通过在原数组上直接操作实现排序,无须借助额外的辅助数组,从而节省内存。通常情况下,原地排序的数据搬运操作较少,运行速度也更快。 稳定性:稳定排序在完成排序后,相等元素在数组中的相对顺序不发生改变。 自适应性:自适应排序的时间复杂度会受输入数据的影响,即最佳时间复杂度、最差时间复杂度、平均时间复杂度并不完全相等。 是否基于比较:基于比较的排序依赖比较运算符(<、=、>)来判断元素的相对顺序,从而排序整个数组,理论最优时间复杂度为  O(nlog⁡n) 。而非比较排序不使用比较运算符,时间复杂度可达  O(n) ,但其通用性相对较差。

理想排序算法

运行快、原地、稳定、正向自适应、通用性好

Released under the MIT License.