各種排序演算法時間複雜度

2021-08-17 04:47:01 字數 1788 閱讀 8516

各種排序演算法比較 

各種常用排序演算法

類別排序方法

時間複雜度

空間複雜度

穩定性複雜性

特點最好

平均最壞

輔助儲存

簡單插入

排序直接插入

o(n)

o(n2)

o(n2)

o(1)

穩定簡單 

希爾排序

o(n)

o(n1.3)

o(n2)

o(1)

不穩定複雜

選擇排序

直接選擇

o(n)

o(n2)

o(n2)

o(1)

不穩定堆排序

o(n*log2n)

o(n*log2n)

o(n*log2n)

o(1)

不穩定複雜

交換排序

氣泡排序

o(n)

o(n2)

o(n2)

o(1)

穩定簡單

1、氣泡排序是一種用時間換空間的排序方法,n小時好

2、最壞情況是把順序的排列變成逆序,或者把逆序的數列變成順序,最差時間複雜度o(n^2)只是表示其操作次數的數量級

3、最好的情況是資料本來就有序,複雜度為o(n)

快速排序

o(n*log2n)

o(n*log2n) 

o(n2)

o(log2n)~o(n) 

不穩定複雜

1、n大時好,快速排序比較占用記憶體,記憶體隨n的增大而增大,但卻是效率高不穩定的排序演算法。

2、劃分之後一邊是乙個,一邊是n-1個,

這種極端情況的時間複雜度就是o(n^2)

3、最好的情況是每次都能均勻的劃分序列,o(n*log2n)

歸併排序

o(n*log2n) 

o(n*log2n) 

o(n*log2n) 

o(n)

穩定複雜

1、n大時好,歸併比較占用記憶體,記憶體隨n的增大而增大,但卻是效率高且穩定的排序演算法。

基數排序

o(d(r+n))

o(d(r+n))

o(d(r+n))

o(rd+n)

穩定複雜

注:r代表關鍵字基數,d代表長度,n代表關鍵字個數

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

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

1、時間複雜度

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

常見的時間複雜度有:常數階o(1),對數階o(log2n),線性階o(n), 線性對數階o(nlog2n),平方階o(n2)

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

2、空間複雜度

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

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

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

ax=n,則x=logan,

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

各種排序演算法時間複雜度及空間複雜度

平均o n 2 最壞o n 2 最好o n 輔助記憶體o 1 穩定排序 最好情況是加了改進方法的最好 即冒泡的過程中檢查是否發生了交換,如果沒有發生交換,說明都排好序了,就break 插入 平均o n 2 最壞o n 2 最好o n 輔助記憶體o 1 穩定排序 直接選擇排序 平均o n 2 最壞o ...

各種排序演算法比較 時間複雜度,空間複雜度

n 2表示n的平方,選擇排序有時叫做直接選擇排序或簡單選擇排序 排序方法平均時間最好時間最壞時間 桶排序 不穩定 o n o n o n 基數排序 穩定 o n o n o n 歸併排序 穩定 o nlogn o nlogn o nlogn 快速排序 不穩定 o nlogn o nlogn o n ...

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

選擇排序 快速排序 希爾排序 堆排序不是穩定的排序演算法,氣泡排序 插入排序 歸併排序和基數排序是穩定的排序演算法。排序演算法不穩定的含義是 在排序之前,有兩個數相等.但是在排序結束之後,它們兩個有可能改變順序.比如說 在乙個待排序佇列中,a和b相等,且a排在b的前面,而排序之後,a排在了b的後面....