Skip to content
Related Articles

Related Articles

C++ Program for Recursive Bubble Sort
  • Difficulty Level : Easy
  • Last Updated : 11 Jan, 2018
GeeksforGeeks - Summer Carnival Banner

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++ 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)
    // 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]);
// 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!

Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.

My Personal Notes arrow_drop_up
Recommended Articles
Page :