Wednesday, 14 May 2014

Shell Sort

PROGRAM:

#include<stdio.h>
#include<conio.h>
void main()
{
 int i,j,k,n,a[20],data,p;
 clrscr();
 printf("$$$ SHELL SORT $$$");
 printf("\nEnter the array limit:");
 scanf("%d",&n);
 printf("Enter array elements:");
 for(i=0;i<n;i++)
 {
  scanf("%d",&a[i]);
 }
 printf("Passes of shell sort:\n");
 for(k=n/2;k>0;k=k/2)
 {
  for(i=k;i<n;i++)
  {
   data=a[i];
   for(j=i;(j>=k)&&(data<a[j-k]);j=j-k)
   {
    a[j]=a[j-k];
   }
   a[j]=data;
   printf("\nK=%d,\t",k);
   for(p=0;p<n;p++)
   {
    printf("%d\t",a[p]);
   }
   printf("\n");
  }
 }
 printf("\nThe sorted elements are:\t");
 for(i=0;i<n;i++)
 {
  printf("%d\t",a[i]);
 }
 getch();
}


OUTPUT:

$$$ SHELL SORT $$$
Enter the array limit:5
Enter array elements:44 22 66 11 55
Passes of shell sort:
K=2, 44 22 66 11 55
K=2, 44 11 66 22 55
K=2, 44 11 55 22 66

K=1, 11 44 55 22 66
K=1, 11 44 55 22 66
K=1, 11 22 44 55 66
K=1, 11 22 44 55 66
The sorted elements are:11 22 44 55 66

No comments:

Post a Comment