排序方法 | 最好时间复杂度 | 平局时间复杂度 | 最坏时间复杂度 | 空间复杂度 | 稳定性 | 特点 |
---|---|---|---|---|---|---|
插入排序 | O(N) | O(N^2) | O(N^2) | O(1) | 稳定 | 越有序越快 |
希尔排序 | O(N) | O(N^1.3)~ O(N^1.5) | O(N^2) | O(1) | 不稳定 | 分组,缩小增量 |
选择排序 | O(N^2) | O(N^2) | O(N^2) | O(1) | 不稳定 | |
堆排序 | O(N*log(N)) | O(N*log(N)) | O(N*log(N)) | O(1) | 不稳定 | |
冒泡排序 | O(N) | O(N^2) | O(N^2) | O(1) | 稳定 | |
快速排序 | O(N*log(N)) | O(N*log(N)) | O(N^2) | O(log(N)) ~ O(N) | 不稳定 | 大量数据复杂度最好 |
归并排序 | O(N*log(N)) | O(N*log(N)) | O(N*log(N)) | O(N) | 稳定 | 大量数据排序最快 |