排序演算法介紹

2021-10-14 13:02:26 字數 1280 閱讀 1237

排序也成排序演算法(sort algorithm),排序是將一組資料,依指定的順序進行排列的過程。

排序的分類:

1內部排序:需要處理的所有資料都載入到內部儲存器中進行排序

2外部排序:資料量過大,無法全部載入到記憶體中,需要借助外部儲存進行排序

常見的排序演算法:

時間頻度:乙個演算法中的語句執行次數稱為語句頻度或時間頻度,記為t(n)

時間複雜度:一般情況下,演算法中的基本操作語句的重複執行次數是問題規模n的某個函式,用t(n)表示,若有某個輔助函式f(n),使得當n趨近於無窮大時,t(n)/f(n)的極限值為不等於零的常數,則稱f(n)是t(n)的同數量級函式。記作t(n)=o(f(n)), o(f(n))為演算法的漸進時間複雜度,簡稱時間複雜度;

t(n)不同,但時間複雜度可能相同。

常見的時間複雜度

常數階o(1)

對數階o(log2n)

線性階o(n)

線性對數階o(nlog2n)

平方階立方階

k次方階

指數階常數階

無論**多少行,只要沒有迴圈等複雜結構,那這個**的時間複雜度就都是o(1)

int i =1;

int j =2;

++i;

j++;

int m = i + j;

對數階

int i =1;

while

(i < n)

線性階

for

(int i =

1; i <=n; i++

)

線性對數階

for

(int m =

1; m <=n; m++

)}

平方階

for

(i =

1; i < n; i++

)

平均時間複雜度是指有可能的輸入例項均以等概率出現的情況下,該演算法的執行時間

最壞情況下的時間複雜度稱最壞時間複雜度。一般討論的時間複雜度均是最壞情況下的時間複雜度

平均時間複雜度和最壞時間複雜度是否一致和演算法有關

排序演算法介紹

排序也稱排序演算法 sort algorithm 排序是將一組資料,依指定的順序進行排列的過程。1 內部排序 指將需要處理的所有資料都載入到內部儲存器 記憶體 中進行排序。2 外部排序法 資料量過大,無法全部載入到記憶體中,需要借助外部儲存 檔案等 進行排序。1 穩定 如果 a 原本在 b 前面,而...

排序演算法各個演算法介紹

一 基本排序演算法 1 氣泡排序 假如我們現在按身高公升序排隊,一種排隊的方法是 從第一名開始,讓兩人相互比身高,若前者高則交換位置,更高的那個在與剩下的人比,這樣一趟下來之後最高的人就站到了隊尾。接著重複以上過程,直到最矮的人站在了佇列首部。我們把隊頭看作水底,隊尾看作水面,那麼第一趟比較下來,最...

常用排序演算法介紹

插入排序 將乙個資料插入到已經排好序的有序資料中。演算法適用於少量資料的排序,時間複雜度 為o n 2 是 穩定的排序方法。歸併排序 將兩個 或兩個以上 有序表合併成乙個新的有序表,即把待排序序列分為若干個子串行,每個子串行是有序的。然後再把有序子串行合併為整體有序序列。是一種 穩定的排序方法 若將...