三種基本排序-氣泡排序、直接插入排序、選擇排序
阿新 • • 發佈:2019-01-01
氣泡排序(從大到小)
原理:對於n個數,需要進行n-1次掃描,每次掃描通過相鄰兩個數的比較,找出最大的數,放到數列頂部。
程式:
1.氣泡排序1:每次掃描把下一個元素和最前面的元素比較,一次掃描結束後,最大的元素就在最前面了。
2.氣泡排序2:每掃描一次,通過相鄰兩個元素的比較,使得最小或最大的數位於頂部。
3.氣泡排序3。對氣泡排序的改進方法:通過加入exchange變數用來判斷每次掃描是否發生數值交換,如果哪次掃描沒有發生數值交換,則已經排序好,無需進行下次掃描,減少了時間複雜度。
以上三個簡單的冒泡演算法中,用了三種不同的數值交換方法:加減法、置換法、位運演算法。其中位運演算法效率最高。
以上排序均為從大到小排序,若要從小到大,只做少許改動即可,原理相同!
直接插入排序
原理:每次執行,把後面的數插入到前面已經排序好的陣列中,直到最後一個完成。
選擇排序
原理:每次從待排序的記錄中選出最大的數,放入已排好序的子檔案中,直到全部記錄完成。
以下為main函式及陣列列印函式:
以上三種簡單排序演算法,都是從大到小的排序!