Insertion Sort program in C Language

Insertion sort program in c language algorithm implementation – Insertion sort is used when number of elements is small. It can also be useful when input array is almost sorted only few elements are misplaced in complete big array.

  • Time Complexity: O(n^2)
  • Auxiliary Space: O(1)
  • Boundary Case: Insertion sort takes maximum time to sort if elements are sorted in reverse order. And it takes minimum time (Order of n) when elements are already sorted.
  • Algorithm Paradigm: Incremental Approaches method
  • Sorting In Place: Yes
  • Stable: Yes

In this program user would be asked to enter the number of elements along with the element values and then the programs would sort them in ascending order by using merge sorting algorithm logic.

Types of Sorting Algorithms:

<img width=

Insertion sort algorithm C Program implementation

#include <math.h>
#include <stdio.h>
/* 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 to print an array of size n
void printArray(int arr[], int n)
    int i;
    for (i = 0; i < n; i++)
        printf("%d ", arr[i]);
/* 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;


6 7 12 13 14

Additional Reading

you can read more articles like this here.


If you found this post useful, don’t forget to share this with your friends, and if you have any query feel free to comment it in the comment section.❤

Leave a Reply