Insertion Sort - Show passes with no of camparison and swap

On-campus and online computer science courses to Learn the basic concepts of Computer Science.This tutorial will cover c ,c++, java, data structure and algorithm,computer graphics,microprocessor,analysis of algorithms,Digital Logic Design and Analysis,computer architecture,computer networks,operating system.
Insertion Sort  

code in C:
#include<stdio.h>
int a[100],count=0,swap=0,k;
int check(int j,int temp)
{
  if( temp<a[j]&&j>=0 )  // shift while loop condition to check function
  {                    //for comparison count
   count++;
   return 1;
  }
  else
 {
   count++;
   return 0;
 }
}
int main()
{
  int i,j,n,temp;

  printf("Enter total elements: ");
  scanf("%d",&n);

  for(i=0;i<n;i++)
  {
   printf("Enter number :");
   scanf("%d",&a[i]);
  }

  for(i=1;i<n;i++)
  {
  temp=a[i];
  j=i-1;
  while( check(j,temp) )
  {
    a[j+1]=a[j];
    j=j-1;
    swap++;
  }
  a[j+1]=temp;
  count++;
  
  printf("\npass %d:\t",i+1);
    for ( k = 0 ; k < n ; k++ )
      printf("%d\t", a[k]);
  }

    printf("\nAfter sorting: ");
    for(i=0;i<n;i++)
   printf(" %d",a[i]);
  printf("\ncomparison count %d",count);
  printf("\nswap count %d",swap);      // shift copy count
  return 0;
}


output:-
Enter total elements: 5
Enter number :29
Enter number :21
Enter number :64
Enter number :20
Enter number :56

pass 2: 21      29      64      20      56
pass 3: 21      29      64      20      56
pass 4: 20      21      29      64      56
pass 5: 20      21      29      56      64
After sorting:  20 21 29 56 64
comparison count 13
swap count 5
--------------------------------

0 comments: