Related Articles

# C Program for Insertion Sort

• Difficulty Level : Hard
• Last Updated : 04 Dec, 2018

Insertion sort is a simple sorting algorithm that works the way we sort playing cards in our hands.

 `// C program for insertion sort``#include ``#include `` ` `/* Function to sort an array using insertion sort*/``void` `insertionSort(``int` `arr[], ``int` `n)``{``    ``int` `i, key, j;``    ``for` `(i = 1; i < n; i++) {``        ``key = arr[i];``        ``j = i - 1;`` ` `        ``/* 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] > key) {``            ``arr[j + 1] = arr[j];``            ``j = j - 1;``        ``}``        ``arr[j + 1] = key;``    ``}``}`` ` `// A utility function ot print an array of size n``void` `printArray(``int` `arr[], ``int` `n)``{``    ``int` `i;``    ``for` `(i = 0; i < n; i++)``        ``printf``(``"%d "``, arr[i]);``    ``printf``(``"\n"``);``}`` ` `/* Driver program to test insertion sort */``int` `main()``{``    ``int` `arr[] = { 12, 11, 13, 5, 6 };``    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr);`` ` `    ``insertionSort(arr, n);``    ``printArray(arr, n);`` ` `    ``return` `0;``}`
Output:
```5 6 11 12 13
```

Please refer complete article on Insertion Sort for more details!

Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.

My Personal Notes arrow_drop_up