# Java Program for Recursive Insertion Sort

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));` `    ``}` `}`

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

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Article Tags :
Practice Tags :

1

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.