21xrx.com
2024-11-22 12:47:34 Friday
登录
文章检索 我的文章 写文章
C++递归实现冒泡排序
2023-06-30 11:34:38 深夜i     --     --
C++ 递归 冒泡排序

冒泡排序是一种基本的排序算法,它的思想是通过比较相邻两个元素的大小来不断交换他们的位置,从而使整个序列有序。利用递归实现冒泡排序算法可以更加简洁易懂,并且可以更好的体现递归的思想。下面我们就来看一看如何用C++递归实现冒泡排序。

首先,我们需要定义一个递归函数来实现冒泡排序。该函数的参数包括需要排序的数组和数组的长度,返回值为空。代码如下:


void bubbleSort(int arr[], int len);

接下来,在函数中需要进行两个操作:比较相邻两个元素的大小,交换位置。我们可以通过两个for循环来实现上述操作。其中,外层循环用于控制循环次数,内层循环用于遍历数组并进行比较和交换。代码如下:


void bubbleSort(int arr[], int len)

{

  if (len == 1)

    return;

  for (int i=0; i<len-1; i++) {

    if (arr[i] > arr[i+1]) {

      // Swap arr[i] and arr[i+1]

      int temp = arr[i];

      arr[i] = arr[i+1];

      arr[i+1] = temp;

    }

  }

  bubbleSort(arr, len-1);

}

在这个函数中,我们先判断传入的数组长度是否为1。如果为1,则已经排序完成,直接返回。否则,进入循环,对相邻的元素进行比较,如果前者大于后者,则交换它们的位置。接着,调用递归函数,将数组长度减1,重复进行以上操作,直到排序完成。

最后,我们可以编写一个测试函数,来验证这个递归实现的冒泡排序算法是否正确。代码如下:


int main()

{

  int arr[] = 22;

  int len = sizeof(arr) / sizeof(arr[0]);

  bubbleSort(arr, len);

  cout << "Sorted array: ";

  for (int i=0; i<len; i++)

    cout << arr[i] << " ";

  cout << endl;

  return 0;

}

这个测试函数中,我们首先定义了需要排序的数组和数组长度,调用递归实现的冒泡排序算法进行排序,最后输出排序后的数组。

总的来说,采用递归实现冒泡排序算法可以使代码更加简洁明了,同时也可以更好的体现出递归的思想。如果您还不熟悉递归,不妨试一试看看它的魅力。

  
  
下一篇: C++ if语句详解

评论区

{{item['qq_nickname']}}
()
回复
回复