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