c语言递归实现冒泡排序
时间: 2023-07-30 22:06:47 浏览: 188
C语言实现冒泡排序算法
好的,以下是C语言递归实现冒泡排序的代码:
```c
#include <stdio.h>
void bubbleSort(int arr[], int n)
{
if (n == 1) // 如果只有一个元素,则直接返回
return;
// 一次冒泡排序,把最大的元素放到最后
for (int i = 0; i < n - 1; i++) {
if (arr[i] > arr[i+1]) {
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
// 递归调用bubbleSort函数,对前n-1个元素进行排序
bubbleSort(arr, n-1);
}
int main()
{
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
printf("排序后的数组:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在这个代码中,我们首先定义了一个 `bubbleSort` 函数,接收一个数组和数组的长度作为参数。然后,在函数中,我们使用一个 `for` 循环来进行一次冒泡排序,将最大的元素放到最后。接着,我们使用递归调用 `bubbleSort` 函数,对前n-1个元素进行排序。最后,在 `main` 函数中,我们定义了一个数组,调用 `bubbleSort` 函数进行排序,并打印出排序后的数组。
阅读全文