public class RecursiveBubbleSort { static 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] 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); } static void printArray(int arr[]) { int n = arr.length; for (int i=0; i