主题:希尔排序的问题
#define ok 1
#define error 0
#define n 11
int lt(int a,int b)
{if(a<b) return ok;
else return error;
}
void shellinsert(int *r,int dk)
{int i,j;
for(i=dk+1;i<=(n-1);++i)
if(lt(r[i],r[i-dk]))
{ r[0]=r[i];
for(j=i-dk;j>0&<(r[0],r[j]);j-=dk)
{r[j+dk]=r[j];
r[j+dk]=r[0];
}
}
}
void shellsort(int *a,int *d,int t)
{int k;
for(k=0;k<t;++k)
shellinsert(a,d[k]);
}
main()
{int i,j,a[n],d[3];
printf("input the step:\n");
for(i=0;i<=2;i++)
scanf("%d",&d[i]);
printf("input the dates:\n");
for(j=1;j<n;j++)
scanf("%d",&a[j]);
shellsort(a,d,i);
for(j=1;j<n;j++)
printf("%d ",a[j]);
getch();
}
请大家看看那里错了啊,为什么我输入数据后排序是不正确的啊
#define error 0
#define n 11
int lt(int a,int b)
{if(a<b) return ok;
else return error;
}
void shellinsert(int *r,int dk)
{int i,j;
for(i=dk+1;i<=(n-1);++i)
if(lt(r[i],r[i-dk]))
{ r[0]=r[i];
for(j=i-dk;j>0&<(r[0],r[j]);j-=dk)
{r[j+dk]=r[j];
r[j+dk]=r[0];
}
}
}
void shellsort(int *a,int *d,int t)
{int k;
for(k=0;k<t;++k)
shellinsert(a,d[k]);
}
main()
{int i,j,a[n],d[3];
printf("input the step:\n");
for(i=0;i<=2;i++)
scanf("%d",&d[i]);
printf("input the dates:\n");
for(j=1;j<n;j++)
scanf("%d",&a[j]);
shellsort(a,d,i);
for(j=1;j<n;j++)
printf("%d ",a[j]);
getch();
}
请大家看看那里错了啊,为什么我输入数据后排序是不正确的啊