SOURCE CODE :
===============================================================
#include <stdio.h>
#include <conio.h>
#define MAX 20
void main()
{
int arr[MAX],i,j,k,n,increment;
clrscr();
printf("\n==============Example of Shell Sort ==============\n");
printf("\nEnter the number of elements: ");
scanf("%d",&n);
printf("\nEnter %d elements : \n",n);
for(i=0 ; i<n ; i++)
scanf("%d",&arr[i]);
printf("\nUnsorted list is:\n");
for (i = 0; i < n; i++)
{
printf("%4d",arr[i]);
}
increment=5;
/*ACTUAL LOGIC STARTS*/
while(increment>=1)
{
for(j=increment ; j<n ; j++)
{
k=arr[j];
for(i = j-increment ; i >= 0 && k<arr[i] ; i = i-increment)
arr[i+increment]=arr[i];
arr[i+increment]=k;
}
increment=increment-2; /*Decrease the incrementement*/
}
printf("\n\nSorted list is:\n");
for (i = 0 ; i<n ; i++)
{
printf("%4d",arr[i]);
}
getch();
}
===============================================================
#include <stdio.h>
#include <conio.h>
#define MAX 20
void main()
{
int arr[MAX],i,j,k,n,increment;
clrscr();
printf("\n==============Example of Shell Sort ==============\n");
printf("\nEnter the number of elements: ");
scanf("%d",&n);
printf("\nEnter %d elements : \n",n);
for(i=0 ; i<n ; i++)
scanf("%d",&arr[i]);
printf("\nUnsorted list is:\n");
for (i = 0; i < n; i++)
{
printf("%4d",arr[i]);
}
increment=5;
/*ACTUAL LOGIC STARTS*/
while(increment>=1)
{
for(j=increment ; j<n ; j++)
{
k=arr[j];
for(i = j-increment ; i >= 0 && k<arr[i] ; i = i-increment)
arr[i+increment]=arr[i];
arr[i+increment]=k;
}
increment=increment-2; /*Decrease the incrementement*/
}
printf("\n\nSorted list is:\n");
for (i = 0 ; i<n ; i++)
{
printf("%4d",arr[i]);
}
getch();
}







