氣泡排序演算法C語言實現
第一部分 排序方法介紹
常用的排序方法:氣泡排序,選擇排序,插入排序及希爾排序等。
氣泡排序是常用的一種排序方法,其基本方法就是逐次比較。即一次比較兩個數,若它們的順序錯誤,則交換;重複進行,知道沒有需要交換為止。
以升序排序為例: 1. 比較相鄰數字的大小,若第一個數比第二個數大,則相互交換; 2. 對每一對相鄰的數作相同的工作,那麼最後的數應該是最大的數; 3. 針對所有數(除了最後一個)重複上述步驟,直到沒有任何一對數字需要比較為止。 需要注意的是,第3條中所謂的“最後一個”是指前幾步中已經處理過的最大的數,而不是整個數列的最後一個數。 例如,將下列數列用氣泡排序法從小到大重新排列; 49 38 65 97 76 13 27 49
: : 經過一系列過程,最終數列次序為:13 27 3 8 49 4 9 65 76 97 通過對以上排序的分析,我們可以簡要畫出氣泡排序的流程圖:
……………………void
觀察流程圖,我們不難發現通過一個簡單的迴圈結構,即可實現對一組數進行排序。
部分程式如下: #include <stdio.h> int main () { int i, j,temp; int array[n]; for (i = 0;i <8; i++) { scanf ("%d",&array[i]); //通過陣列和迴圈輸需要排序的數列 }
printf ("Before ordering,the rank is : "); for (i = 0;i < 8 ; i++) { printf ("%d ",array[i]); } printf ("\n"); //顯示排序之前的陣列