# C++ Program for Recursive Bubble Sort

Background :

Bubble Sort is the simplest sorting algorithm that works by repeatedly swapping the adjacent elements if they are in wrong order.
Following is iterative Bubble sort algorithm :

```// Iterative Bubble Sort
bubbleSort(arr[], n)
{
for (i = 0; i < n-1; i++)

// Last i elements are already in place
for (j = 0; j < n-i-1; j++)
if (arr[j] > arr[j+1])
swap(arr[j], arr[j+1]);
} ```

Recursion Idea.

1. Base Case: If array size is 1, return.
2. Do One Pass of normal Bubble Sort. This pass fixes last element of current subarray.
3. Recur for all elements except last of current subarray.

## C/C++

 `// C/C++ program for recursive implementation ` `// of Bubble sort ` `#include ` `using` `namespace` `std; ` ` `  `// A function to implement bubble sort ` `void` `bubbleSort(``int` `arr[], ``int` `n) ` `{ ` `    ``// Base case ` `    ``if` `(n == 1) ` `        ``return``; ` ` `  `    ``// One pass of bubble sort. After ` `    ``// this pass, the largest element ` `    ``// is moved (or bubbled) to end. ` `    ``for` `(``int` `i=0; i arr[i+1]) ` `            ``swap(arr[i], arr[i+1]); ` ` `  `    ``// Largest element is fixed, ` `    ``// recur for remaining array ` `    ``bubbleSort(arr, n-1); ` `} ` ` `  `/* Function to print an array */` `void` `printArray(``int` `arr[], ``int` `n) ` `{ ` `    ``for` `(``int` `i=0; i < n; i++) ` `        ``printf``(``"%d "``, arr[i]); ` `    ``printf``(``"\n"``); ` `} ` ` `  `// Driver program to test above functions ` `int` `main() ` `{ ` `    ``int` `arr[] = {64, 34, 25, 12, 22, 11, 90}; ` `    ``int` `n = ``sizeof``(arr)/``sizeof``(arr[0]); ` `    ``bubbleSort(arr, n); ` `    ``printf``(``"Sorted array : \n"``); ` `    ``printArray(arr, n); ` `    ``return` `0; ` `} `

Please refer complete article on Recursive Bubble Sort for more details!

My Personal Notes arrow_drop_up
Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.