来源:http://www.runoob.com/w3cnote/sort-algorithm-summary.html
排序算法 平均时间复杂度
冒泡排序 O(n^2)
选择排序 O(n^2)
插入排序 O(n^2)
希尔排序 O(N*logN)
快速排序 O(N*logN)
归并排序 O(N*logN)
堆排序 O(N*logN)
计数排序 O(N)
基数排序 O(N)
计数排序 O(N)和基数排序 O(N)的思想来自桶排序,放入桶中,再一次倒出
经典排序算法的空间复杂度
O(1):插入、选择、冒泡 、堆、希尔
O(logN)~O(N): 快速排序
O(N):归并排序
O(M):计数、基数 (M是桶的数量)
稳定性:相同的元素排序前后位置不变
稳定:冒泡、插入、归并、计数、基数、桶
不稳定:选择、快速、希尔、堆
工程上的排序:
1. 综合的
2. 数组较小时,插入排序
3. 数组较大时,快速排序(常量系数小)或其他O(logN)的排序