C 语言实现一个冒泡排序的demo
时间: 2024-02-22 18:57:13 浏览: 105
这是一个用 C 语言实现冒泡排序的例子:
```c
#include <stdio.h>
void bubbleSort(int arr[], int len) {
for (int i = 0; i < len - 1; i++) {
// 内层循环,每次把最大的数排在后面
for (int j = 0; j < len - 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[] = {5, 2, 3, 1, 4};
int len = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, len);
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
解释一下这个例子:
首先定义了一个 `bubbleSort` 函数,接收一个整型数组和数组长度作为参数。外层循环控制排序的轮数,内层循环控制每一轮排序中比较的次数。在每一轮排序中,相邻的两个数进行比较,如果前面的数大于后面的数,则交换它们的位置。
这样每一轮下来,最大的数就浮到了数组的最后面。因为每一轮排序都能确定一个数的位置,所以外层循环只需要执行数组长度减一次即可。
在 `main` 函数中,定义了一个整型数组,调用 `bubbleSort` 函数进行排序,最后通过循环输出排序后的数组。
注意,C 语言中数组作为参数传递给函数时,实际传递的是数组的首地址,所以在函数内部对数组元素进行修改,会改变原数组的值。
阅读全文