1.非线性时间类排序(时间复杂度未突破$ 0(nlog_2n)$)

不稳定的四个排序算法

选择排序: 0(n2)
希尔排序: 0(n1.3)希尔排序实现python
快速排序: 0 ( n l o g 2 n ) 0(nlog_2n) 0(nlog2n) 快速排序实现C++&python
堆排序: 0 ( n l o g 2 n ) 0(nlog_2n) 0(nlog2n) Python实现堆排序

稳定的三个排序算法

插入排序: 0(n2)插入排序实现C++&python
冒泡排序:0(n2) 冒泡排序实现C++&python
归并排序:$ 0(nlog_2n)$归并排序实现python

所谓稳定和不稳定

稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。
不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。


2.线性时间类排序

桶排序:$ 0(n+k)$
计数排序:$ 0(n+k)$
基数排序:$ 0(n+k)$