用c语言写一个冒泡算法并详细注释
时间: 2024-05-12 18:20:54 浏览: 94
以下是冒泡算法的C语言实现及注释:
```c
#include <stdio.h>
void bubble_sort(int arr[], int n) { // 定义冒泡排序函数,接受一个整型数组和数组长度作为参数
int i, j, temp;
for (i = 0; i < n - 1; i++) { // 外层循环控制排序轮数,每一轮将最大的数冒泡到数组末尾
for (j = 0; j < n - i - 1; j++) { // 内层循环控制每一轮比较的次数
if (arr[j] > arr[j + 1]) { // 如果前一个数比后一个数大,交换两个数的位置
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = { 3, 7, 2, 5, 1, 9, 8, 4, 6 }; // 定义一个整型数组
int n = sizeof(arr) / sizeof(int); // 计算数组的长度
bubble_sort(arr, n); // 调用冒泡排序函数对数组进行排序
for (int i = 0; i < n; i++) { // 遍历排序后的数组并输出
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
冒泡算法的基本思路是从数组的第一个元素开始,依次比较相邻的两个元素的大小,如果前一个元素比后一个元素大,就交换两个元素的位置,直到将最大的元素冒泡到数组的末尾。然后再从数组的第一个元素开始,重复以上操作,直到将所有元素排序完成。
冒泡排序的时间复杂度是O(n^2),不适合处理大量数据的排序。但是它的思路简单,易于理解,是入门级别的排序算法。
阅读全文