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 arr[j+1]) swap(arr[j], arr[j+1]); }
Recursion Idea.
- Base Case: If array size is 1, return.
- Do One Pass of normal Bubble Sort. This pass fixes last element of current subarray.
- Recur for all elements except last of current subarray.
Java
// 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 )
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]
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 : " );
System.out.println(Arrays.toString(arr));
}
} |
Time Complexity: O(n2) where n is the size of the array.
Auxiliary Space: O(1)
Please refer complete article on Recursive Bubble Sort for more details!