#include <stdio.h> void printArray(int *a,int n){ for(int i=0; i<n; i++){ printf("%d ",a[i]); } printf("\n"); } void insertionSort(int *a,int n){ int key,j; //for passes for(int i=0;i<n;i++){ //for each pass key=a[i]; j=i-1; while(j>=0 && a[j]>key){ a[j+1]=a[j]; j--; } a[j+1]=key; } } int main() { // 12,| 54, 65, 07, 23, 09 --> i=1, key=54, j=0 // 12,| 54, 65, 07, 23, 09 --> 1st pass done (i=1)! // 12, 54,| 65, 07, 23, 09 --> i=2, key=65, j=1 // 12, 54,| 65, 07, 23, 09 --> 2nd pass done (i=2)! // 12, 54, 65,| 07, 23, 09 --> i=3, key=7, j=2 // 12, 54, 65,| 65, 23, 09 --> i=3, key=7, j=1 // 12, 54, 54,| 65, 23, 09 --> i=3, key=7, j=0 // 12, 12, 54,| 65, 23, 09 --> i=3, key=7, j=-1 // 07, 12, 54,| 65, 23, 09 --> i=3, key=7, j=-1--> 3rd pass done (i=3)! // Fast forwarding and 4th and 5th pass will give: // 07, 12, 54, 65,| 23, 09 --> i=4, key=23, j=3 // 07, 12, 23, 54,| 65, 09 --> After the 4th pass // 07, 12, 23, 54, 65,| 09 --> i=5, key=09, j=4 // 07, 09, 12, 23, 54, 65| --> After the 5th pass int a[]={65,54,23,12,9,7}; int n=6; insertionSort(a,n); printArray(a,n); return 0; }