首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言冒泡排序實現:整型陣列升序排列教學版

     編輯:關於C語言

C 語言冒泡排序實現:整型陣列升序排列教學版

冒泡排序通過相鄰比較交換,將大元素逐步「冒泡」到陣列末尾。本文提供標準教學實現,輸入 10 個整數,升序輸出。

一、 代碼實現

#include <stdio.h>

int main() {
    int a[10];
    printf("input 10 numbers: ");
    for (int i = 0; i < 10; i++) scanf("%d", &a[i]);

    for (int i = 0; i < 9; i++) {          // 趟數
        for (int j = 0; j < 9 - i; j++) {  // 每趟比較次數遞減
            if (a[j] > a[j+1]) {
                int t = a[j]; a[j] = a[j+1]; a[j+1] = t;
            }
        }
    }

    printf("the sorted numbers:\n");
    for (int i = 0; i < 10; i++) printf("%d\t", a[i]);
    printf("\n");
    return 0;
}

二、 執行示例

input 10 numbers: 11 2 3 5 34 6 78 9 12 62
the sorted numbers:
2       3       5       6       9       11      12      34      62      78

三、 關鍵點

  • 外層迴圈 n-1 趟,內層每趟比較 n-1-i 次(後 i 個已就位)。
  • 相鄰逆序即交換,穩定排序(相等不交換)。
  • 時間複雜度 O(N²),適合教學與極小數據(N < 50)。

四、 優化方向

  1. 加 swapped 標誌位,提前結束(見前文優化版)。
  2. 記錄最後交換位置,縮小下一輪掃描範圍。
  3. 雞尾酒排序(雙向冒泡),減少「烏龜」元素慢速移動。

理解冒泡排序是掌握排序演算法基石,進而學習快速排序、歸併排序、堆排序等 O(N log N) 高級演算法。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved