文章目录
算法原理
冒泡排序(Bubble Sort)是一种基础的交换排序算法。其核心思想是重复比较相邻元素,若顺序错误则交换,通过多轮遍历将最大值逐步"冒泡"到数组末端。算法结束条件为某轮遍历未发生任何交换,表明数组已有序。
代码实现
bash
#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]为例:
bash
第1轮:比较交换后 → [1,4,2,5,8](5上浮)
第2轮:比较交换后 → [1,2,4,5,8](4上浮)
第3轮:无交换 → 提前终止
适用场景
1、小规模数据排序
2、内存受限环境
3、教学示例(算法原理直观)