C语言应用递归函数实现起泡排序
时间: 2023-07-20 21:17:45 浏览: 131
好的,下面是C语言应用递归函数实现起泡排序的代码:
```c
#include <stdio.h>
void bubble_sort(int arr[], int n) {
int i, temp;
if (n == 1) return;
for (i = 0; i < n - 1; i++) {
if (arr[i] > arr[i + 1]) {
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
bubble_sort(arr, n - 1);
}
int main() {
int arr[] = { 64, 34, 25, 12, 22, 11, 90 };
int n = sizeof(arr) / sizeof(arr[0]);
int i;
printf("原始数组:\n");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
bubble_sort(arr, n);
printf("排序后的数组:\n");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在这个实现中,我们将一个数组和它的长度作为参数传递给 `bubble_sort` 函数。在这个函数中,我们首先检查数组的长度是否为1,如果是,就返回。否则,我们遍历数组并比较相邻的元素,如果它们的顺序不正确,就交换它们。然后,我们递归调用 `bubble_sort` 函数,传递数组和长度减1。这样,每次递归调用都会将数组中的最大元素移动到正确的位置。最后,我们在主函数中调用 `bubble_sort` 函数,并输出排序后的数组。
阅读全文