In this tutorial, i am going to show you how to implement the insertion sort program in c with the help of for loop, while loop, and function.

Insertion sort is **a sorting algorithm that places an unsorted element at its suitable place in each iteration**. Insertion sort works similarly as we sort cards in our hand in a card game. We assume that the first card is already sorted then, we select an unsorted card.

## All C Program For Insertion Sort

- C Program to Insertion Sort using For Loop
- C Program to Insertion Sort using While Loop
- C Program to Insertion Sort using Function

### C Program to Insertion Sort using For Loop

#include <stdio.h> int main() { int a[100], number, i, j, temp; printf("\n Please Enter the total Number of Elements : "); scanf("%d", &number); printf("\n Please Enter the Array Elements : "); for(i = 0; i < number; i++) scanf("%d", &a[i]); for(i = 1; i <= number - 1; i++) { for(j = i; j > 0 && a[j - 1] > a[j]; j--) { temp = a[j]; a[j] = a[j - 1]; a[j - 1] = temp; } } printf("\n Insertion Sort Result : "); for(i = 0; i < number; i++) { printf(" %d \t", a[i]); } printf("\n"); return 0; }

The result of the above c program; is as follows:

Please Enter the total Number of Elements : 5 Please Enter the Array Elements : 1 9 4 3 2 Insertion Sort Result : 1 2 3 4 9

### C Program to Insertion Sort using While Loop

#include <stdio.h> int main() { int a[100], number, i, j, temp; printf("\n Please Enter the total Number of Elements : "); scanf("%d", &number); printf("\n Please Enter the Array Elements : "); for(i = 0; i < number; i++) scanf("%d", &a[i]); i = 1; while( i <= number - 1) { j = i; while( j > 0 && a[j - 1] > a[j]) { temp = a[j]; a[j] = a[j - 1]; a[j - 1] = temp; j--; } i++; } printf("\n Result : "); for(i = 0; i < number; i++) { printf(" %d \t", a[i]); } printf("\n"); return 0; }

The result of the above c program; is as follows:

Please Enter the total Number of Elements : 5 Please Enter the Array Elements : 6 9 1 2 4 Result : 1 2 4 6 9

### C Program to Insertion Sort using Function

#include <stdio.h> void insFunc(int a[], int num) { int i, j, temp; for(i = 1; i <= num - 1; i++) { for(j = i; j > 0 && a[j - 1] > a[j]; j--) { temp = a[j]; a[j] = a[j - 1]; a[j - 1] = temp; } } } int main() { int a[100], num, i; printf("\n Please Enter the total No. of Elements : "); scanf("%d", &num); printf("\n Please Enter the Array Elements : "); for(i = 0; i < num; i++) scanf("%d", &a[i]); insFunc(a, num); printf("\n Output : "); for(i = 0; i < num; i++) { printf(" %d \t", a[i]); } printf("\n"); return 0; }

The result of the above c program; is as follows:

Please Enter the total No. of Elements : 5 Please Enter the Array Elements : 8 6 4 2 1 Output : 1 2 4 6 8

## Be First to Comment