C++ 程序用于递归冒泡排序?

server side programmingprogrammingc++

在本节中,我们将看到另一种著名的冒泡排序技术。我们以迭代方式使用了冒泡排序。但在这里,我们将看到冒泡排序的递归方法。递归冒泡排序算法如下所示。

算法

bubbleRec(arr, n)

begin
   if n = 1, return
   for i in range 1 to n-2, do
      if arr[i] > arr[i+1], then
         交换 arr[i] 和 arr[i+1]
      end if
   done
   bubbleRec(arr, n-1)
end

示例

#include<iostream>
using namespace std;
void recBubble(int arr[], int n){
   if (n == 1)
      return;
   for (int i=0; i<n-1; i++) //for each pass p
      if (arr[i] > arr[i+1]) //如果当前元素大于下一个元素
   swap(arr[i], arr[i+1]); //交换元素
   recBubble(arr, n-1);
}
main() {
   int data[] = {54, 74, 98, 154, 98, 32, 20, 13, 35, 40};
   int n = sizeof(data)/sizeof(data[0]);
   cout << "排序序列 ";
   recBubble(data, n);
   for(int i = 0; i <n;i++){
      cout << data[i] << &" &";;
   }
}

输出

排序序列 13 20 32 35 40 54 74 98 98 154

相关文章