1. 程式人生 > >各排序時間複雜度

各排序時間複雜度

排序方法                 最好情況                最壞情況             平均情況              穩定性 


氣泡排序                    O(n)                       O(n2)                    O(n2)                  穩定


快速排序                    O(nlogn)               O(n2)                    O(nlogn)           不穩定


簡單選擇排序                                                                          O(n2)                不穩定


堆排序                                                      O(nlogn)                                           不穩定


直接插入排序            O(n)                      O(n2)                     O(n2)                    穩定


希爾排序                                                                               O(n1.3)                不穩定


歸併排序                    O(nlogn)               O(nlogn)             O(nlogn)             穩定


基數排序                                                                                O(d(r+n))              穩定
(1)選擇排序最好是 O(n2) 
(2)快速排序在平均情況下複雜性為O(nlogn),最壞情況 O(n2),最好O(nlogn) 
(3)堆排序和合並排序在最壞情況下複雜性為O(nlogn)。可見,合併排序和堆排序是比較排序演算法中時間複雜度最優演算法。 


空間複雜度 
空間效能是排序所需輔助空間大小 


所有簡單排序和堆排序都是0(1) 
快速排序為0(logn),要為遞迴程式執行過程棧所需的輔助空間 
歸併排序和基數排序所需輔助空間最多,為O(n)