1. 程式人生 > >圖解常見排序方法的時間複雜度

圖解常見排序方法的時間複雜度

常見排序方法及其複雜度

在這裡插入圖片描述
幾種複雜的表示方式:
O(1): 耗時/耗空間與輸入資料大小無關
O(n): 就代表資料量增大幾倍,耗時也增大幾倍。比如常見的遍歷演算法。
O(n2),就代表資料量增大n倍時,耗時增大n的平方倍,這是比線性更高的時間複雜度。比如氣泡排序、遞迴演算法,就是典型的O(n2)的演算法,對n個數排序,需要掃描n×n次。
O( login)當資料增大n倍時,耗時增大logn倍(這裡的log是以2為底的,比如,當資料增大256倍時,耗時只增大8倍,是比線性還要低的時間複雜度)。如:二分查詢
O(nlogn)同理,就是n乘以logn,當資料增大256倍時,耗時增大256*8=2048倍。這個複雜度高於線性低於平方。歸併排序就是O(nlogn)的時間複雜度。多次使用二分法。