用c语言写一个冒泡排序并且带注释
时间: 2024-10-25 11:10:37 浏览: 125
当然可以,下面是一个简单的C语言冒泡排序算法示例,并带有注释:
```c
#include <stdio.h> // 引入标准输入输出库
// 冒泡排序函数
void bubbleSort(int arr[], int n) {
// 遍历所有数组元素
for (int i = 0; i < n - 1; i++) { // 当前轮次未到最后一项
// 每轮遍历都将最大的数“冒泡”到末尾
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; // 将临时变量放回原位置
}
}
}
}
// 主函数,用于测试冒泡排序
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90}; // 待排序的整数数组
int n = sizeof(arr) / sizeof(arr[0]); // 计算数组长度
printf("原始数组: \n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
bubbleSort(arr, n); // 调用冒泡排序函数
printf("\n排序后的数组: \n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这个程序首先声明了一个冒泡排序函数,它接受一个整数数组和它的长度作为参数。内部有两个嵌套循环,第一个负责整个排序过程,第二个则用于每一轮内的元素比较和交换。在主函数中,我们创建了一个数组并调用了bubbleSort函数对它进行排序,最后打印排序后的结果。
阅读全文