#include <stdio.h>
void shell_sort(int a[],int N);
void shell_sort(int a[],int N){
int D,i,p,temp;
//希尔增量排序
for(D = N/2;D > 0;D = D/2){
//插入排序
for(p = D;p < N;p++){
temp = a[p];
for(i = p;((i > D || i == D) && (a[i-D] > temp));i-=D){
a[i] = a[i-D];
}
a[i] = temp;
}
}
for(int i = 0;i < 10;i++){
printf("%d ",a[i]);
}
}
int main () {
int a[10] = {34,51,89,16,20,63,36,98,103,12};
printf("排序前的元素为:\n");
for(int i = 0;i < 10;i++){
printf("%d ",a[i]);
}
printf("\n");
printf("排序后的元素为:\n");
shell_sort(a,10);
}