/*和插入排序类似,在插入排序的基础进行分组*/
void ShellSort(int a[],int n)
{
int i,j,gap;
int tmp;
gap = n/2; //初始化增量
while(gap>0) //
{
for(i=gap;i<n;i++) //对所有相隔gap位置的所有元素进行插入排序
{
tmp = a[i];
j = i-gap;
while(j>=0 && tmp <a[i])
{
a[j+gap] = a[j];
j = j-gap;
}
a[j+gap] = tmp;
}
gap = gap/2;
}
}
希尔排序
最新推荐文章于 2023-11-08 23:05:42 发布