C Program for Insertion Sort

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[0]); ` ` `  `    ``insertionSort(arr, n); ` `    ``printArray(arr, n); ` ` `  `    ``return` `0; ` `} `

Output:

```5 6 11 12 13
```

Please refer complete article on Insertion Sort for more details!

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.