1. 程式人生 > >三種基本排序-氣泡排序、直接插入排序、選擇排序

三種基本排序-氣泡排序、直接插入排序、選擇排序

氣泡排序(從大到小)

       原理:對於n個數,需要進行n-1次掃描,每次掃描通過相鄰兩個數的比較,找出最大的數,放到數列頂部。

      程式:

    1.氣泡排序1:每次掃描把下一個元素和最前面的元素比較,一次掃描結束後,最大的元素就在最前面了。

    

  2.氣泡排序2:每掃描一次,通過相鄰兩個元素的比較,使得最小或最大的數位於頂部。

  

3.氣泡排序3。對氣泡排序的改進方法:通過加入exchange變數用來判斷每次掃描是否發生數值交換,如果哪次掃描沒有發生數值交換,則已經排序好,無需進行下次掃描,減少了時間複雜度。

  以上三個簡單的冒泡演算法中,用了三種不同的數值交換方法:加減法、置換法、位運演算法。其中位運演算法效率最高。

 以上排序均為從大到小排序,若要從小到大,只做少許改動即可,原理相同!

直接插入排序

 原理:每次執行,把後面的數插入到前面已經排序好的陣列中,直到最後一個完成。

選擇排序

    原理:每次從待排序的記錄中選出最大的數,放入已排好序的子檔案中,直到全部記錄完成。

以下為main函式及陣列列印函式:

  

  以上三種簡單排序演算法,都是從大到小的排序!