在这里插入代码
#include <stdio.h>
void InsertSort(int A[],int n){
int i,j;
for(i=1;i<=n;i++){
A[0]=A[i];
for(j=i-1;j>0;j--){
if(j>0&&A[0]<A[j])
{A[j+1]=A[j];
i=j;}
A[i]=A[0];
}
}
}
void ShellSort(int A[],int n){
int i,j,d;
for(d=n/2;d>=1;d=d/2){
for(i=d+1;i<=n;++i){
if(A[i]<A[i-d]){
A[0]=A[i];
for(j=i-d;j>0&&A[j]>A[0];j=j-d)
A[j+d]=A[j];
A[j+d]=A[0];
}
}
}
}
int main(void) {
int a[]={0,10,20,24,14,3,68,77};
for(int i=1;i<=7;i++){
//InsertSort(a,7);
ShellSort(a,7);
printf("%d ",a[i]);}
return 0;
}
结果
3 10 14 20 24 68 77