| #include<stdio.h>
void shellSort(int *a, int n)
{
int gap;
int i;
int j;
int t;
for(gap = n/2; gap > 0; gap = gap/2)
{
for(i = gap; i < n; i++)
{
j = a;
t = i - gap;
while(t >= 0 && j < a[t])
{
a[t+gap]= a[t];
t = t - gap;
}
a[t+gap] = j;
}
}
printf("排序后的数据:\n");
for(i = 0; i < n; i++)
{
printf("%d ",a);
}
printf("\n");
}
int main()
{
int a[100] = {0};
int i = 0;
int j = 0;
printf("请输入您要排序的原始数(按-1键退出):");
while(true)
{
scanf("%d",&a);
if(a == -1)
break;
j++;
i++;
}
printf("\n");
shellSort(a, j);
}
| |