এই সেকশনে আমরা বিখ্যাত বাবল সর্ট কৌশলের আরেকটি পদ্ধতি দেখব। আমরা ইতোমধ্যে বাবল সর্ট ইটেরেটিভ পদ্ধতিতে ব্যবহার করেছি। কিন্তু এখানে আমরা বাবল সর্টের রিকার্সিভ পদ্ধতি দেখব। রিকার্সিভ বাবল সর্ট অ্যালগরিদম নিচের মতো দেখায়।
অ্যালগরিদম
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
উদাহরণ
#include<iostream>
using namespace std;
void recBubble(int arr[], int n){
if (n == 1)
return;
for (int i = 0; i < n-1; i++) // প্রতিটি পাস 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 << "Sorted Sequence ";
recBubble(data, n);
for(int i = 0; i < n; i++){
cout << data[i] << " ";
}
}
আউটপুট
Sorted Sequence 13 20 32 35 40 54 74 98 98 154