Shell Sort


#include<iostream.h>
class shell
{
int a[100],size;
public:
void get()
{
int i;
cout<<"\nEnter the size of array :";
cin>>size;
cout<<"\nEnter the elements :";
for(i=0;i<size;i++)
cin>>a[i];
}
void sort()
{
int i,j;
int inc=size/2;
do
{
for(i=0;i<inc;i++)
inst(inc,i);
show();
inc=inc/2;
}
while(inc>0);
}
void show()
{
int i;
for(i=0;i<size;i++)
cout<<" "<<a[i];
cout<<endl;
}
void inst(int inc,int st)
{
int i,j,t;
for(i=st+inc;i<size;i=i+inc)
{
for(j=i;j>=inc;j=j-inc)
{
if(a[j]>=a[j-inc])
break;
{
t=a[j];
a[j]=a[j-inc];
a[j-inc]=t;
}}}}};
main()
{
shell s;
s.get();
s.sort();
}

0 comments: