冒泡排序的递归写法c语言
时间: 2023-10-13 07:25:58 浏览: 110
冒泡排序的递归写法可以采用两个参数,一个是待排序的数组,另一个是数组的长度。
以下是C语言的冒泡排序递归写法示例:
```c
void bubble_sort_recursive(int arr[], int n) {
//如果数组长度为1,则已排序完成
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;
}
}
//递归调用,对剩余的元素进行排序
bubble_sort_recursive(arr, n-1);
}
```
在主函数中,可以这样调用:
```c
int main() {
int arr[] = {3, 1, 4, 2, 5};
int n = sizeof(arr) / sizeof(arr[0]);
bubble_sort_recursive(arr, n);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果:
```
1 2 3 4 5
```
注意,递归调用的过程中,每次都是对数组的前 n-1 个元素进行排序,直到数组长度为 1 时停止递归。
阅读全文