陣列是 C 語言中最基礎也最重要的資料結構之一。要熟練掌握陣列操作,排序演算法是絕佳的練習題目。其中「氣泡排序法」邏輯直觀、易於理解,是初學者入門排序演算法的首選。本文將帶你從原理到程式碼,完整掌握這個經典演算法。
氣泡排序的核心概念很簡單:重複遍歷陣列,比較相鄰元素,若順序錯誤則交換。就像氣泡從水底浮升到水面一樣,每一輪遍歷後,最大(或最小)的元素會「浮」到陣列末端。
簡單來說,就是將較小的數值逐步「冒泡」到陣列前端(索引 0),次小的放到索引 1,依此類推。
#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+1,執行比較與交換。tmp 完成兩數值交換。12 15 24 34 45 50 51 78 84 95
透過親手實作氣泡排序,你不僅能理解排序邏輯,更能深化對陣列索引操作、巢狀迴圈控制、記憶體中資料交換機制的掌握。這是邁向進階演算法(如快速排序、合併排序)的基石。
提示:氣泡排序時間複雜度為 O(n²),適合小規模資料教學;實務上大量資料請使用
qsort或更高效演算法。