Skip to content

各种内部排序方法比较

类别排序bestnormalworst辅助空间稳定性比较次数交换次数
插入插入排序O(n)O(n²)O(n²)O(1)稳定n-1,n(n-1)/20,n(n-1)/2
插入希尔排序O(n)O(n^1.3)O(n²)O(1)不稳定??
选择选择排序O(n²)O(n²)O(n²)O(1)不稳定n(n-1)/20,n-1
选择堆排序O(nlog2n)O(nlog2n)O(nlog2n)O(1)不稳定nlog2n?
交换冒泡排序O(n)O(n²)O(n²)O(1)稳定n-1,n(n-1)/20,n(n-1)/2
交换快速排序O(nlog2n)O(nlog2n)O(n²)O(nlog2n)不稳定nlog2n,n(n-1)/2?
归并排序O(nlog2n)O(nlog2n)O(nlog2n)O(n)稳定nlog2n/2?
基数排序O(d(n+rd)O(d(n+rd))O(d(n+rd))O(rd+n)稳定??

注:基数排序中d代表长度,r代表关键字基数,n代表关键字个数