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

C 語言陣列進階應用:經典氣泡排序法詳解與實作

     編輯:關於C

前言

陣列是 C 語言中最基礎也最重要的資料結構之一。要熟練掌握陣列操作,排序演算法是絕佳的練習題目。其中「氣泡排序法」邏輯直觀、易於理解,是初學者入門排序演算法的首選。本文將帶你從原理到程式碼,完整掌握這個經典演算法。

什麼是氣泡排序法?

氣泡排序的核心概念很簡單:重複遍歷陣列,比較相鄰元素,若順序錯誤則交換。就像氣泡從水底浮升到水面一樣,每一輪遍歷後,最大(或最小)的元素會「浮」到陣列末端。

演算法步驟

  1. 比較相鄰的兩個元素,如果第一個比第二個大,就交換它們。
  2. 對陣列中每一對相鄰元素重複步驟 1,完成後,最後一個元素將是最大值。
  3. 針對剩餘未排序的元素重複上述步驟,每輪減少一個已排序的尾部元素。
  4. 持續直到沒有任何一對元素需要交換,排序完成。

簡單來說,就是將較小的數值逐步「冒泡」到陣列前端(索引 0),次小的放到索引 1,依此類推。

程式碼實作:對 10 個整數進行排序

#include <stdio.h>

int main() {
    int i, j, tmp;
    int number[10] = {95, 45, 15, 78, 84, 51, 24, 12, 34, 50};

    // 氣泡排序核心邏輯
    for (i = 0; i < 10; i++) {
        for (j = 9; j > i; j--) {
            if (number[j] < number[j - 1]) {
                tmp = number[j - 1];
                number[j - 1] = number[j];
                number[j] = tmp;
            }
        }
    }

    // 輸出排序結果
    for (i = 0; i < 10; i++) {
        printf("%d ", number[i]);
    }
    printf("\n");

    return 0;
}

程式碼解析

  • 外層迴圈 (i):控制排序輪數,共需 9 輪(10 個元素)。
  • 內層迴圈 (j):從陣列尾端向前遍歷到 i+1,執行比較與交換。
  • 交換邏輯:使用暫存變數 tmp 完成兩數值交換。

執行結果

12 15 24 34 45 50 51 78 84 95

學習心得

透過親手實作氣泡排序,你不僅能理解排序邏輯,更能深化對陣列索引操作、巢狀迴圈控制、記憶體中資料交換機制的掌握。這是邁向進階演算法(如快速排序、合併排序)的基石。

提示:氣泡排序時間複雜度為 O(n²),適合小規模資料教學;實務上大量資料請使用 qsort 或更高效演算法。

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