本文实例分析了C#的各种排序算法。。具体分析如下:
首先通过图表比较不同排序算法的时间复杂度和稳定性。
|
排序方法 |
平均时间 |
最坏情况 |
最好情况 |
辅助空间 |
稳定性 |
| 直接插入排序 |
O(n2) |
O(n2) |
O(n) |
O(1) |
是 |
| 冒泡排序 |
O(n2) |
O(n2) |
O(n) |
O(1) |
是 |
| 简单选择排序 |
O(n2) |
O(n2) |
O(n2) |
O(1) |
是 |
| 希尔排序 | - |
O(nlog2n)~O(n2) |
O(nlog2n)~O(n2) |
O(1) |
否 |
| 快速排序 |
O(nlog2n) |
O(n2) |
O(nlog2n) |
O(log2n) |
否 |
| 堆排序 |
O(nlog2n) |
O(nlog2n) |
O(nlog2n) |
O(1) |
否 |
| 2-路归并排序 |
O(nlog2n) |
O(nlog2n) |
O(nlog2n) |
O(n) |
是 |
| 基数排序 | O(d(n + rd)) | O(d(n + rd)) | O(d(n + rd)) | O(rd) | 是 |










