郁闷了,shellsort~
初始增量的不同,排序可能不能完成.....这是怎么回事?在怎么看,最差的时候inc=1,s=0就当一般插入排序进行,但是却没完成排序//void subsort(int* arr,int size_a,int inc,int s)
{
for(int i=s+inc;i<size_a;i+=inc)
{
int key = arr[i];
int j=i-inc;
for(;j>=s&&arr[j]>key;)
{
arr[j+inc]=arr[j];
j-=inc;
}
arr[j+inc]=key;
}
}
void shellSort(int* arr,int size_a)
{
int inc=size_a;
do{
inc=inc/3+1;
for(int s=0;s<inc;++s) subsort(arr,size_a,inc,s);
}while(inc>1);
}
[[it] 本帖最后由 中学者 于 2008-5-8 20:06 编辑 [/it]]