#include <iostream>
using namespace std;
#define siz 100000000
int a[siz];
void swap(int i, int j)
{
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
void shell_sort(int a[], int n)
{
int d=n,flag=1;
while(flag!=0||d>1)
{
flag=0;
d=(d+1)/2;
for(int i=0;i<n-d;i++)
{
if(a[i+d]<a[i])
{
swap(i+d,i);
flag=1;
}
}
}
}
int main()
{
int n;
while(cin>>n)
{
for(int i=0;i<n;i++) cin>>a[i];
shell_sort(a,n);
for(int i=0;i<n;i++) cout<<a[i]<<endl;
}
return 0;
}
Shell Sort
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment