代码:
void ShellSort(int * const arr, const DWORD number)//希尔排序
{
int tmp;
DWORD i, j;
DWORD step;
DWORD index;
if (number < 2)
{
return;
}
for (step=number/2; step>0; step/=2)
{
for (i=0; i<step; i++)
{
for (j=step+i; j<number; j+=step)
{
for (index=j; index>=step; index-=step)
{
if (arr[index] < arr[index-step])
{
tmp = arr[index];
arr[index] = arr[index-step];
arr[index-step] = tmp;
}
else
{
break;
}
}
}
}
}
}