复杂度
| 查找 | 插入 | 删除 | |
|---|---|---|---|
| 数组 | O(n) | O(1) | O(n) |
| 有序数组 | O(logn) | O(n) | O(n) |
| 链表 | O(n) | O(1) | O(n) |
| 有序链表 | O(n) | O(n) | O(n) |
| 二叉树最坏 | O(n) | O(n) | O(n) |
| 二叉树一般 | O(logn) | O(logn) | O(logn) |
| 平衡树 | O(logn) | O(logn) | O(logn) |
| 哈希表 | O(1) | O(1) | O(1) |
| 类别 | 排序方法 | 时间复杂度 | 空间复杂度 | 稳定性 | ||
|---|---|---|---|---|---|---|
| 平均情况 | 最好情况 | 最坏情况 | 辅助存储 | |||
| 插入排序 | 直接插入 | O(n^2) | O(n) | O(n^2) | O(1) | 稳定 |
| Shell 排序 | O(n^1.3) | O( n) | O(n^2) | O(1) | 不稳定 | |
| 选择排序 | 直接选择 | O(n^2) | O(n^2) | O(n^2) | O(1) | 不稳定 |
| 堆排序 | O(nlog2n) | O( nlog2n) | O(nlog2n) | O(1) | 不稳定 | |
| 交换排序 | 冒泡排序 | O(n^2) | O(n) | O(n^2) | O(1) | 稳定 |
| 快速排序 | O(nlog2n) | O( nlog2n) | O(n^2) | O(nlog2n) | 不稳定 | |
| 归并排序 | O(nlog2n) | O(nlog2n) | O(nlog2n) | O(n) | 稳定 | |
| 基数排序 | O(d(r+n)) | O(d(n+rd)) | O(d(r+n)) | O(rd+n) | 稳定 | |
提示
基数排序的复杂度中,r代表关键字的基数,d代表长度,n代表关键字的个数
