Open In App

C++ Program for Recursive Bubble Sort

Last Updated : 21 Jul, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Background: Bubble Sort is the simplest sorting algorithm that works by repeatedly swapping the adjacent elements if they are in the wrong order. Following is the 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++)
         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 the last element of the current subarray.
  3. Recur for all elements except the last of the current subarray.

Recursive Bubble Sort Implementation in C++

C++




// C/C++ program for recursive implementation
// of Bubble sort
#include <bits/stdc++.h>
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 < n - 1; i++)
        if (arr[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;
}


Output

Sorted array : 
11 12 22 25 34 64 90 

Time Complexity: O(n*n)
Auxiliary Space: O(1)

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



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads