INSERTION SORT

INSERTION SORT:
In this sorting technique, as the name suggests, insert each element to its proper location. It is simple to implement and efficent on small data set. It is stable, in-place(only requires const amount of extra memory space O(1)) and an online algorithm(i.e. it can sort a list as it recieves).
Worst case:О(n2)
Average Case:О(n2)
Best case:Ω(n)
ALGORITHM:
  • Input Array as a[]
  • for i = 1 to n – 1
    j = i
    while j > 0 and a[j-1] > a[j]
    swap a[j] and a[j-1]
    j = j – 1
    end while
    end for loop
  • PRINT sorted array as a[]
e.g. sort 6,4 2,5
6 , 4 , 2 , 5          4 to be inserted
? , 6 , 2 , 5          j=0, reached boundary
4 , 6 , 2 , 5          4 inserted

4 , 6 , 2 , 5          2 to be inserted
4 , ? , 6 , 5          4>2 shift
? , 4 , 6 , 5          j=0, reached boundary
2 , 4 , 6 , 5          2 inserted

2 , 4 , 6 , 5          5 to be inserted
2 , 4 , ? , 6          6>5 shift
2 , 4 , 5 , 6          4<5, 5 inserted

C SOURCE CODE:

#include<stdio.h>
#include<conio.h>   
void main() 
{ 
int a[100], n, i, j, temp;   
printf("Enter number of elements\n"); scanf("%d", &n);   
printf("Enter %d elements\n", n);   

for (i = 0;i<n; i++)
scanf("%d", &a[i]);

for(i=1;i<n;i++)
{
temp=a[i];
j=i-1;
while((temp<a[j])&&(j>=0))
{
a[j+1]=a[j];
j=j-1;
}
a[j+1]=temp;
}

printf("Sorted array\n");   
for (i=0;i<n;i++ ) 
printf("%d\t",a[i]);   
getch(); 
}

Comments

Popular posts from this blog