http://www.educity.cn 作者:不详 来源:希赛教育
 希尔排序

  已知待排序序列data[n];希尔排序的增量序列为d[m],其中d[]序列降序排列,且d[m-1]=1。其方法是对序列进行m趟排序,在第 i 趟排序中,按增量d把整个序列分成d个子序列,并按直接插入排序的方法对每个子序列进行排序。

  希尔排序的程序为:

  void shellsort(int *data,int *d,int n,int m)

  { int i,j;

  for (i=0;i 

  for (j=0; (1) ;j++)

  shell( (2) );

  }

  void shell(int *data,int d,int num,int n)

  { int i,j,k,temp;

  for (i=1; (3) ;i++)

  { j=0;

  temp=data[j+i*d];

  while ((j 

  j++;

  for (k=j;k 

  data[k+1]=data[k];

  (5) ;

  (6) }

  }

  参考答案:(1)j 

  (2)data,d,j,n

  (3)num+i*d 

  (4)data[j+i*d] 

  (5)data[j]=temp