
| 是否有元素落在最终位 | 算法种类 | 时间复杂度(最好) | 时间复杂度(平均) | 时间复杂度(最坏) | 空间复杂度 | 是否稳定 |
|---|---|---|---|---|---|---|
| 否 | 直接插入排序 | 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.排序算法稳定性一般要求在对象按某种规则排序上
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)