Java Program for Recursive Insertion Sort
Last Updated :
14 Mar, 2023
Improve
Insertion sort is a simple sorting algorithm that works the way we sort playing cards in our hands.Below is an iterative algorithm for insertion sort
Algorithm
// Sort an arr[] of size n insertionSort(arr, n) Loop from i = 1 to n-1. a) Pick element arr[i] and insert it into sorted sequence arr[0..i-1]
Java
// Recursive Java program for insertion sort import java.util.Arrays; public class GFG { // Recursive function to sort an array using // insertion sort static void insertionSortRecursive( int arr[], int n) { // Base case if (n <= 1 ) return ; // Sort first n-1 elements insertionSortRecursive( arr, n- 1 ); // Insert last element at its correct position // in sorted array. int last = arr[n- 1 ]; int j = n- 2 ; /* Move elements of arr[0..i-1], that are greater than key, to one position ahead of their current position */ while (j >= 0 && arr[j] > last) { arr[j+ 1 ] = arr[j]; j--; } arr[j+ 1 ] = last; } // Driver Method public static void main(String[] args) { int arr[] = { 12 , 11 , 13 , 5 , 6 }; insertionSortRecursive(arr, arr.length); System.out.println(Arrays.toString(arr)); } } |
Javascript
// Recursive JavaScript program for insertion sort function insertionSortRecursive(arr, n) { // Base case if (n <= 1) { return ; } // Sort first n-1 elements insertionSortRecursive(arr, n - 1); // Insert last element at its correct position // in sorted array. const last = arr[n - 1]; let j = n - 2; /* Move elements of arr[0..i-1], that are greater than key, to one position ahead of their current position */ while (j >= 0 && arr[j] > last) { arr[j + 1] = arr[j]; j--; } arr[j + 1] = last; } // Driver Method const arr = [12, 11, 13, 5, 6]; insertionSortRecursive(arr, arr.length); console.log(arr); |
Output:-
[5, 6, 11, 12, 13]
Time Complexity: O(n2)
Auxiliary Space: O(1)
Please refer complete article on Recursive Insertion Sort for more details!