C语言冒泡排序详解及简单示例

版权申诉
0 下载量 17 浏览量 更新于2024-09-05 收藏 66KB PDF 举报
C语言冒泡排序法是一种简单的排序算法,其核心思想是重复地遍历待排序的序列,比较相邻元素并交换它们的位置,如果它们的顺序错误。这个过程会持续进行,直到整个序列变得有序。下面是一个完整的C语言实现冒泡排序的例子: ```c #include <stdio.h> void bubbleSort(int arr[], int n) { int i, j, temp; for (i = 0; i < n - 1; i++) { // 主循环,遍历整个数组 for (j = 0; j < n - 1 - i; j++) { // 内循环,只对未排序部分进行比较 if (arr[j] > arr[j + 1]) { // 如果前一个元素大于后一个 temp = arr[j]; // 临时存储后一个元素 arr[j] = arr[j + 1]; // 后一个元素移到前一个位置 arr[j + 1] = temp; // 前一个元素放回原位置 } } } } int main() { int a[10]; int n = 10; // 假设数组长度为10 printf("请输入10个整数:\n"); for (int i = 0; i < n; i++) { scanf("%d", &a[i]); } bubbleSort(a, n); // 对数组进行排序 printf("排序后的数组:\n"); for (int i = 0; i < n; i++) { printf("%5d,", a[i]); // 用5位宽度输出元素,后面加逗号 } printf("\n"); return 0; } ``` 冒泡排序的特点是效率较低,时间复杂度为O(n^2),适用于小规模数据或者基本有序的数组。它通过不断比较和交换元素,逐步将最大或最小的元素"冒泡"到序列的一端。在上述代码中,`bubbleSort`函数接收一个整数数组和它的长度,然后执行冒泡排序。`main`函数负责输入数据并调用排序函数。 需要注意的是,冒泡排序的改进版本通常包括"鸡尾酒排序"或"双向冒泡排序",这些优化版可以在一定程度上减少不必要的比较次数,提高效率。然而,对于大规模数据,更高效的排序算法如快速排序、归并排序等通常是首选。