📅  最后修改于: 2023-12-03 14:58:01.769000             🧑  作者: Mango
递归气泡排序是一种经典的排序算法,它通过不断交换相邻元素的位置来将序列按照升序排列。本文将介绍如何使用C++语言实现递归气泡排序的程序。
#include <iostream>
using namespace std;
void bubbleSortRecursive(int arr[], int n)
{
// 基准情况:当序列长度为1时,不需要进行排序,直接返回
if (n == 1)
return;
// 一次遍历,将最大的元素放到末尾
for (int i = 0; i < n - 1; i++)
{
if (arr[i] > arr[i + 1])
swap(arr[i], arr[i + 1]);
}
// 递归调用,对除了最后一个元素的子序列进行排序
bubbleSortRecursive(arr, n - 1);
}
int main()
{
int arr[] = {4, 2, 6, 8, 1, 3, 5, 7};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Original array: ";
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
cout << endl;
bubbleSortRecursive(arr, n);
cout << "Sorted array: ";
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
cout << endl;
return 0;
}
首先,我们定义了一个名为bubbleSortRecursive
的函数,它接受一个整数数组和数组长度作为参数。
在函数内部,我们使用了递归的思想来实现气泡排序。首先,我们检查序列的长度是否为1,如果是,则直接返回,不需要进行排序。
然后,我们使用一次遍历,将最大的元素逐步交换到序列的末尾。
最后,我们递归调用bubbleSortRecursive
函数,对除了最后一个元素的子序列进行排序。
在main
函数中,我们定义了一个初始数组,并输出原始数组的内容。
然后,我们调用bubbleSortRecursive
函数对数组进行排序。
最后,我们输出排序后的数组内容。
Original array: 4 2 6 8 1 3 5 7
Sorted array: 1 2 3 4 5 6 7 8
经过递归气泡排序后,原始数组按照升序排列。