Trong phần này, chúng ta sẽ thấy một cách tiếp cận khác của kỹ thuật sắp xếp bong bóng nổi tiếng. Chúng tôi đã sử dụng sắp xếp bong bóng theo cách lặp đi lặp lại. Nhưng ở đây chúng ta sẽ thấy cách tiếp cận đệ quy của loại bong bóng. Thuật toán sắp xếp bong bóng đệ quy trông như thế này.
Thuật toán
bubbleRec (arr, n)
begin if n = 1, return for i in range 1 to n-2, do if arr[i] > arr[i+1], then exchange arr[i] and arr[i+1] end if done bubbleRec(arr, n-1) end
Ví dụ
#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]) //if the current element is greater than next one swap(arr[i], arr[i+1]); //swap elements 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 << "Sorted Sequence "; recBubble(data, n); for(int i = 0; i <n;i++){ cout << data[i] << " "; } }
Đầu ra
Sorted Sequence 13 20 32 35 40 54 74 98 98 154