常用排序算法總結

排序算法  冒泡 插入 歸併 穩定性好

1.冒泡排序算法:通過嵌套for循環,將相鄰的數進行兩兩比較。如果後面的數大就不變,如果後面的數小,就將前面的數與後面的數交換位置。


2.選擇排序算法:首先從序列中獲取最小的那個數值,將該數值放在首位,再從剩餘 的序列中獲取最小的,放在第二位,依次排序。 


有序序列+無序序列

3.插入排序算法:將第一個元素看做有序序列,選擇第二個元素,與該數的前一個數相比較,如果這個數比前一個數小就交換位置, 這時,將前兩個數看做是一個有序序列。緊接着,獲取下一個無序序列的第一個數,與前面有序序列從後往前比較,直到這個數比有序序列的某一個數小時停下,並插入此位置。後面依次重複。


4.希爾排序:直接插入排序的一種改進版,也稱縮小增量排序。通過一個 增量將整個序列分隔爲多個子序列。
然後,使用直接插入排序。這樣橫向將每個序列排序完成後,減小增量值,再重複上一步。直到最後增量爲一
爲至。



5.快速排序:隨意選取序列中 某一個數,在剩餘元素中,使用low指針指向第一個元素,使用high指針指向最後一個元素。
low指針向後移動(先比較自身),每移動一位,比較一次該位上元素是否比開始選取的元素小,直到出現第一個比選取元素大的值時停下,之後將high指針向前移動(先比較自身),直到出現第一個元素值比選取值小時停下。交換low與high所指的兩個元素。接着移動low,找到比初始值大的元素,停下low,移動high,找到比初始值小的元素。交換low與high所指元素。 直到low指針與hihg重合
 
 


6.歸併算法:將整個序列對半拆分,直到拆分到最小組合的元素個數爲二爲止,之後分別比較每一個小組的兩個
元素,將小值放在前面。將兩兩組合的元素比較完成後,再將兩個組合進行比較。然後通過兩個指針,
分別指向該組最左邊的首個元素,比較指針指向元素的大小,將小的元素取出放到另一個容器的首位,
之後將失去元素的指正右移,再比較兩個指針所在元素,將小的元素取出放在另一個容器第二的位置,重複,將最後剩的數,
放到末尾。再將四個一組的合併,再重複上一步,通過指針比較。再合併。直到比較完成。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章