Open In App

Java Program for Recursive Insertion Sort

Last Updated : 14 Mar, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

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!


Next Article
Practice Tags :

Similar Reads

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy