C語言排序 C語言氣泡排序演算法(Bubble Sort)

來源:酷知科普網 1.22W

操作方法

(01)氣泡排序原理:設要排序的資料記錄到一個陣列中,把關鍵字較小的看成“較輕”的氣泡,所以就應該上浮。從底部(陣列下標較大的一端)開始,反覆的從下向上掃描陣列。進行每一遍掃描時,依次比較“相鄰”的兩個數據,如果“較輕”的氣泡在下面,就要進行交換,把它們顛倒過來。(圖片取自網際網路

C語言排序 C語言氣泡排序演算法(Bubble Sort)

(02)具體實現過程:第一步 輸入資料你可以直接將你所需要的資料存入陣列,如int a[5] = {84,83,88,87,61};也可以通過迴圈輸入for(i = 0 ; i< n ;i++){scanf("%d",&a[i]);}來實現資料輸入陣列;

C語言排序 C語言氣泡排序演算法(Bubble Sort) 第2張

(03)具體實現過程:第二步 寫迴圈氣泡排序是從最低部掃描(陣列下標大的一端);所以內部迴圈應該從陣列下標較大的一方開始 for(j = n - 1 ; j > i ; j--)內部迴圈確定以後,寫外部迴圈;for(i = 0; i < n ; i++)for(j = n - 1 ; j > i ; j--) // j>i的是掃描第一遍以後,下標最小的一位數,已經變成最大的一位數

C語言排序 C語言氣泡排序演算法(Bubble Sort) 第3張
C語言排序 C語言氣泡排序演算法(Bubble Sort) 第4張

(04)具體實現過程:第二步 寫交換if(a[j - 1] < a[j]){temp = a[j - 1];a[j - 1]=a[j];a[j]=temp;}

C語言排序 C語言氣泡排序演算法(Bubble Sort) 第5張

(05)C語言實現:#include <stdio.h>int main(){int a[5] = {84,83,88,87,61};int i,j;int temp;printf("按從大到小排序!n");int n = 5 ;//陣列最大的下標for(i = 0; i < n ; i++)for(j = n - 1 ; j > i ; j--){if(a[j - 1] < a[j]){temp = a[j - 1];a[j - 1]=a[j];a[j]=temp;}}for(i = 0 ; i < n ; i++){printf("%d ",a[i]);}return 0;}

C語言排序 C語言氣泡排序演算法(Bubble Sort) 第6張

(06)執行程式,成功截圖如下;

C語言排序 C語言氣泡排序演算法(Bubble Sort) 第7張

(07)氣泡排序的時間複雜度為0(n^2);

C語言排序 C語言氣泡排序演算法(Bubble Sort) 第8張

特別提示

個人,如有不對,請多多指教。如有侵犯,請於我聯絡,立馬解決。僅供參考使用,謝謝!

熱門標籤