各排序演算法的效能(複雜度)

2021-08-14 16:15:48 字數 770 閱讀 9776

1.時間複雜度

時間複雜度可以認為是對排序資料的總的操作次數。反映當n變化時,操作次數呈現什麼規律。

(1) 常見的時間複雜度有:

常數階o(1),對數階o(log

2 n),線性階o(n), 線性對數階o(nlog

2 n),平方階o(n2

)(2)時間複雜度o(1):

演算法中語句執行次數為乙個常數,則時間複雜度為o(1),

2、空間複雜度

空間複雜度是指演算法在計算機內執行時所需儲存空間的度量,它也是問題規模n的函式

(1)空間複雜度o(1):

當乙個演算法的空間複雜度為乙個常量,即不隨被處理資料量n的大小而改變時,可表示為o(1)

(2)空間複雜度o(log

2 n):

當乙個演算法的空間複雜度與以2為底的n的對數成正比時,可表示為 o(log

2 n)ax=n,則x=logan

(3)空間複雜度o(n):

當乙個演算法的空間複雜度與n成線性比例關係時,可表示為0(n).

1、歸併排序每次遞迴都要用到乙個輔助表,長度與待排序的表長度相同,雖然遞迴次數是o(log2n),但每次遞迴都會釋放掉所佔的輔助空間,

2、快速排序空間複雜度只是在通常情況下才為o(log2n),如果是最壞情況的話,很顯然就要o(n)的空間了。當然,可以通過隨機化選擇pivot來將空間複雜度降低到o(log2n)。

各排序演算法的時間複雜度和空間複雜度

本文主要講解下平常我們用到的堆排序,歸併排序以及快速排序的時間和空間複雜度。堆排序 堆排序分為建堆和調整堆。建堆是通過父節點和子節點兩兩比較並交換得到的,時間複雜度為o n 調整堆需要交換n 1次堆頂元素,並調整堆,調整堆的過程就是滿二叉樹的深度logn,所以時間複雜度為o nlogn 所以最終時間...

各排序演算法分類以及複雜度分析

穩定性是指待排序的序列中有兩個或者兩個以上相同的項,排序前和排序後,看這些相同的項的相對位置有沒有沒發生變化,如果沒有發生變化,就是穩定的 如果發生變化,就是不穩定的。1.1 直接插入排序 最壞時間複雜度 o n 2 最好時間複雜度 o n 平均時間複雜度 o n 2 空間複雜度 o 1 1.2 折...

排序演算法複雜度

在這篇裡,來記述下排序演算法複雜度,空間 時間 時間複雜度 對排序資料的總的操作次數。反映當n變化時,操作次數呈現什麼規律。空間複雜度 是指演算法在計算機內執行時所需儲存空間的度量,它也是資料規模n的函式。穩定 如果a原本在b前面,而a b,排序之後a仍然在b的前面。不穩定 如果a原本在b的前面,而...