# 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. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend **live classes **with experts, please refer **DSA Live Classes for Working Professionals **and **Competitive Programming Live for Students**.