常用排序演算法收集

2021-10-06 14:58:15 字數 1757 閱讀 2667

時間複雜度o(n^2)

空間複雜度o(1)

void

bubble_sort

(int

*arr,

int size)}}

}

時間複雜度o(nlogn)

空間複雜度o(1)

void

select_sort

(int

*arr,

int size)}if

(tmp!=i)

}}

時間複雜度o(n^2)

空間複雜度o(1)

void

insert_sort

(int

*arr,

int size)

}}

時間複雜度o(nlogn)

空間複雜度o(1)

void

insert_sort

(int

*arr,

int st,

int ed,

int del)}}

void

shell_sort

(int

*arr,

int st,

int ed)

}}

時間複雜度o(nlogn)

空間複雜度o(n)

void

merge

(int

*arr,

int*tmp,

int st,

int mid,

int ed)

else

}while

(i!=mid+1)

while

(j!=ed+1)

for(

int n=st;n<=ed;n++)}

void

merge_sort

(int

*arr,

int*tmp,

int st,

int ed)

}

時間複雜度o(nlogn)

空間複雜度o(logn)

void

quick_sort

(int

*arr,

int st,

int ed)

arr[i]

=arr[j]

;while

(i<=key)

arr[j]

=arr[i];}

arr[i]

=key;

quick_sort

(arr,st,i)

;quick_sort

(arr,i+

1,ed)

;}

時間複雜度o(nlogn)

空間複雜度o(1)

void

heapadjust

(int

*arr,

int i,

int size)

if(childr

(tmp!=i)}}

void

heap_sort

(int

* arr,

int size)

}

各種排序演算法收集

排序演算法是一種基本並且常用的演算法。由於實際工作中處理的數量巨大,所以排序演算法 對演算法本身的速度要求很高。而一般我們所謂的演算法的效能主要是指演算法的複雜度,一般用o方法來表示。在後面我將 給出詳細的說明。對於排序的演算法我想先做一點簡單的介紹,也是給這篇文章理乙個提綱。我將按照演算法的複雜度...

常用排序演算法

筆者最近學習演算法,學了很久也只弄懂了幾個排序演算法,在這裡曬一下下,作為以後參考之用。一 為什麼要研究排序問題 許多計算機科學家認為,排序演算法是演算法學習中最基本的問題,原因有以下幾點 l有時候應用程式本身需要對資訊進行排序,如為了準備客戶賬目,銀行需要對支票賬號進行排序 l很多演算法將排序作為...

常用排序演算法

一 簡單排序演算法 由於程式比較簡單,所以沒有加什麼注釋。所有的程式都給出了完整的執行 並在我的vc環境 下執行通過。因為沒有涉及mfc和windows的內容,所以在borland c 的平台上應該也不會有什麼 問題的。在 的後面給出了執行過程示意,希望對理解有幫助。1.冒泡法 這是最原始,也是眾所...