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