概念介绍
稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b 的前面,则为稳定排序。
非稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 可能不在 b 的前面,则为非稳定排序。
原地排序:原地排序就是指在排序过程中不申请多余的存储空间,只利用原来存储待排数据的存储空间进行比较和交换的数据排序。
非原地排序:需要利用额外的数组来辅助排序。
时间复杂度:一个算法执行所消耗的时间。
空间复杂度:运行完一个算法所需的内存大小
十大算法的时间复杂度和空间复杂度一览表
十大排序中的稳定排序
冒泡排序(bubble sort)
插入排序 (insertion sort)
归并排序 (merge sort)
十大排序中的非稳定排序
选择排序 (selection sort)
希尔排序 (shell sort)
堆排序 (heapsort)
快速排序 (quicksort)