當前位置:妙知谷 >

遊戲數碼 >電腦 >

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

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

操作方法

(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張

特別提示

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

  • 文章版權屬於文章作者所有,轉載請註明 https://miaozhigu.com/sm/diannao/o4vq7.html