時間複雜度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.冒泡法 這是最原始,也是眾所...