实现思路 时间复杂度 空间复杂度 特殊情况下
选择排序 O(n^2) O(1) O(n^2)
插入排序 O(n^2) O(1) 数组完全有序时为O(n)
冒泡排序 O(n^2) O(1) 数组完全有序时为O(n)
归并排序 O(n^logn) O(n) 数组完全有序时为O(n)
快速排序 O(n^logn) O(1) 数组相同元素较多时O(n)
堆排序 O(n ^logn) O(1)
希尔排序 O(n^logn) ~ O(n^2) O(1)

1.排序的主要问题:

SelectK, topK 问题,逆序对
当数据以流的方式输入时,首先采用优先队列解决

2.排序算法的优化思想:

分治思想

3.算法的稳定性:

算法的稳定性是指排序前后两个数之间的相对位置关系,并且算法稳定性依赖具体实现

  • 不稳定算法:

选择排序 / 插入排序 / 希尔排序 / 堆排序

  • 不稳定算法:

归并算法 / 快速排序