算法原理
冒泡排序(Bubble Sort)是一种基础的交换排序算法。其核心思想是重复比较相邻元素,若顺序错误则交换,通过多轮遍历将最大值逐步'冒泡'到数组末端。算法结束条件为某轮遍历未发生任何交换,表明数组已有序。
代码实现
#include <stdio.h>
// 冒泡排序函数
void bubbleSort(int arr[], int n){
if(n <= 1) return;
// 边界条件处理
for(int i = 0; i < n - 1; i++){
// 外层循环控制轮数
int swapped = 0;
// 优化标记
for(int j = 0; j < n - i - 1; j++){
// 内层循环比较相邻元素
if(arr[j] > arr[j+1]){
// 交换元素
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
swapped = 1;
// 标记发生交换
}
}
// 若本轮无交换则提前终止
if(!swapped) break;
}
}
// 测试代码
int main(){
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
printf("排序结果:");
for(int i=0; i < n; i++) printf("%d ", arr[i]);
return 0;
}
执行过程示例
以数组 [5, 1, 4, 2, 8] 为例:
第 1 轮:比较交换后 → [1,4,2,5,8](5 上浮)
第 2 轮:比较交换后 → [1,2,4,5,8](4 上浮)
第 3 轮:无交换 → 提前终止
适用场景
- 小规模数据排序
- 内存受限环境
- 教学示例(算法原理直观)

