一、根據時間複雜度不同,主流排序演算法可以分為三大類:
1.時間複雜度為o(n**
2)的排序演算法
氣泡排序
選擇排序
插入排序
希爾排序(希爾排序比較特殊,他的效能略優於o(n**
2),但又比不上o(nlogn)),姑且把它歸入本類
2.時間複雜度為o(nlogn)的排序演算法
快速排序
歸併排序
堆排序3
.時間複雜度為線性的排序演算法
計數排序
桶排序基數排序
二、根據穩定性,劃分為穩定排序和不穩定排序
1.如果值相同的元素在排序後仍然保持著排序前的順序,則這樣的排序演算法是穩定排序
2.如果值相同的元素在排序後打亂了排序前的順序,則這樣的排序演算法是不穩定排序
資料結構之排序演算法
1.插入排序 直接插入排序 include void insertsort int unsort int length unsort j temp int main void insertsort num,7 int i 0 for i i 7 i return 0 折半插入排序 include v...
資料結構之排序演算法
學過好久的東西,感覺都忘記的差不多了,雖然可能日常寫 的過程之中也可能寫過一些演算法,但是從來都沒有規整,最近忙裡偷閒,寫點關於排序的演算法,當然好多人都寫過一些很不錯的演算法blog,我寫一下,只是方便自己日後檢視,當然也給有需要的朋友一些參考,歡迎指正 排序演算法有 氣泡排序,選擇排序,插入排序...
資料結構之排序演算法
1 直接插入排序 將乙個記錄插入到已經排好序的有序表中,只有當排序結束時每個元素才能進入到正確的位置,複雜度為o n2 優點 演算法簡單 易行,當待排序記錄數量較少時,該演算法非常有效 缺點 資料規模較大時,效率比較低。演算法insertsort r,n insertsort1.插入排序 for j...