是否有元素落在最终位 | 算法种类 | 时间复杂度(最好) | 时间复杂度(平均) | 时间复杂度(最坏) | 空间复杂度 | 是否稳定 |
---|---|---|---|---|---|---|
否 | 直接插入排序 | O(n) | O(n²) | O(n²) | O(1) | 是 |
是 | 冒泡排序 | O(n) | O(n²) | O(n²) | O(1) | 是 |
是 | 简单选择排序 | O(n²) | O(n²) | O(n²) | O(1) | 否 |
否 | 希尔排序 | O(n²) | O(1) | 否 | ||
是 | 快速排序 | O(nlogn) | O(nlogn) | O(n²) | O(logn)最坏O(n) | 否 |
是 | 堆排序 | O(nlogn) | O(nlogn) | O(nlogn) | O(1) | 否 |
否 | 归并排序 | O(nlogn) | O(nlogn) | O(nlogn) | O(1) | 是 |
否 | 基数排序 | O(d(n+r)) | O(d(n+r)) | O(d(n+r)) | O(r) | 是 |
1.log是以二为底的。
2.希尔排序在O(n²)基础上减少了比较次数
3.基数排序其中n为数字个数,r为数字位数
4.排序算法稳定性一般要求在对象按某种规则排序上