#include<stdio.h>
///希尔排序-缩减增量排序
void shellsort(int v[],int n){
int i,j,gap,temp;///gap记录步长
for(gap=n/2;gap>0;gap/=2){
for(i=gap;i<n;i++){
for(j=i-gap;j>=0&&v[j]>v[j+gap];j-=gap){
temp=v[j],v[j]=v[j+gap],v[j+gap]=temp;///元素过程看做单步操作
}
}
}
}
int main(){
int i;
int a[]={3,2,5,1};
shellsort(a,4);
for(i=0;i<4;i++){
printf("%d ",a[i]);
}
return 0;
}
参考:《C程序设计语言第二版》