Java 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.






// Java program for recursive implementation
// of Bubble sort
import java.util.Arrays;
public class GFG
    // A function to implement bubble sort
    static 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]
                int temp = arr[i];
                arr[i] = arr[i+1];
                arr[i+1] = temp;
        // Largest element is fixed,
        // recur for remaining array
        bubbleSort(arr, n-1);
    // Driver Method
    public static void main(String[] args)
        int arr[] = {64, 34, 25, 12, 22, 11, 90};
        bubbleSort(arr, arr.length);
        System.out.println("Sorted array : ");


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

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.

My Personal Notes arrow_drop_up
Article Tags :
Practice Tags :


Please write to us at to report any issue with the above content.