#include <stdio.h>
#include <stdlib.h>
#define maxsize 10
typedef struct{
int a[maxsize+1];
int length;
}sqlist;
void shellsort(sqlist*l){
int i,j;
int increment=l->length;
do{
increment=increment/3+1;
for(i=increment+1;i<=l->length;i++){
if(l->a[i]<l->a[i-increment]){
l->a[0]=l->a[i];
for(j=i-increment;j>0 && l->a[j]>l->a[0];j -= increment){
l->a[j+increment]=l->a[j];
}
l->a[j+increment]=l->a[0];
}
}
}
while(increment>1);
}
int main(){
int i,length;
scanf("%d",&length);
sqlist*l=(sqlist*)malloc(sizeof(sqlist));
l->length=length;
for(i=1;i<=length;i++){
scanf("%d",&l->a[i]);
}
shellsort(l);
for(i=1;i<=length;i++){
printf("%d\n",l->a[i]);
}
return 0;
}
shellsort
最新推荐文章于 2023-02-12 23:46:40 发布