标签:
#include<stdio.h>
#include<iostream>
using namespace std;
int n;
void ShellInsert(int a[],int k)
{
int i,j;
for(i=k+1;i<=n;i++) //增量为k,跳跃式移动
{
if(a[i]<a[i-k])
{
a[0]=a[i];
for(j=i-k;j>0&&a[0]<a[j];j-=k)
a[j+k]=a[j];
a[j+k]=a[0];
}
}
}
void ShellSort(int a[],int b[],int t)
{
int i;
for(i=1;i<=t;i++)
ShellInsert(a,b[i]);
}
int main ()
{
int a[100],b[10],i;
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
for(i=1;i<=n;i++)
cin>>b[i]; // 增量数组
ShellSort(a,b,n);
for(i=1;i<=n;i++)
cout<<a[i]<<" ";
return 0;
}
标签:
原文地址:http://blog.csdn.net/fyxz1314/article/details/42640017