이 섹션에서 우리는 유명한 버블 정렬 기술의 또 다른 접근 방식을 볼 것입니다. 우리는 반복적인 방식으로 버블 정렬을 사용했습니다. 그러나 여기서 우리는 버블 정렬의 재귀적 접근 방식을 보게 될 것입니다. 재귀적 버블 정렬 알고리즘은 다음과 같습니다.
알고리즘
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++) //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] << " "; } }
출력
Sorted Sequence 13 20 32 35 40 54 74 98 98 154