69,382
社区成员
发帖
与我相关
我的任务
分享
//一个希尔排序,d是增量数组,numOfD是增量数组的大小。西安交通大学的一本书上的代码,请问在使用的时候,增量数组传多少合适呢???
//书上并没有说明
void ShellSort(int a[], int n , int d[] ,int numOfD)
{
int i,j,k;
int val;
int span; //增量
for(int m=0; m<numOfD; m++) //m趟
{
span=d[m];
for(k=0; k<span; k++) //span个小组
{
//组内进行直接插入排序 ,区别在于每次不是增加1,而是增加span
for(i=k; i<n-span; i+=span)
{
val=a[j+span];
j=i;
while(j>-1 && val<a[j])
{
a[j+span]=a[j];
j=j-span;
}
a[j+span]=val;
}
}
}
}