📜  递归气泡排序的C++程序(1)

📅  最后修改于: 2023-12-03 14:58:01.769000             🧑  作者: Mango

递归气泡排序的C++程序

递归气泡排序是一种经典的排序算法,它通过不断交换相邻元素的位置来将序列按照升序排列。本文将介绍如何使用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;
}
代码说明
  1. 首先,我们定义了一个名为bubbleSortRecursive的函数,它接受一个整数数组和数组长度作为参数。

  2. 在函数内部,我们使用了递归的思想来实现气泡排序。首先,我们检查序列的长度是否为1,如果是,则直接返回,不需要进行排序。

  3. 然后,我们使用一次遍历,将最大的元素逐步交换到序列的末尾。

  4. 最后,我们递归调用bubbleSortRecursive函数,对除了最后一个元素的子序列进行排序。

  5. main函数中,我们定义了一个初始数组,并输出原始数组的内容。

  6. 然后,我们调用bubbleSortRecursive函数对数组进行排序。

  7. 最后,我们输出排序后的数组内容。

运行结果
Original array: 4 2 6 8 1 3 5 7 
Sorted array: 1 2 3 4 5 6 7 8 

经过递归气泡排序后,原始数组按照升序排列。