最小增量法不怎么用哦..练下手
#include<stdio.h>
void subsort(int* arr,int size_a,int inc,int s)
{
for(int i=s;i<size_a-inc;i+=inc)
{
for(int j=s;j<size_a-inc;j+=inc)
if(arr[j]>arr[j+inc])
{
int demo=arr[j+inc];
arr[j+inc]=arr[j];
arr[j]=demo;
}
}
}
void shellSort(int* arr,int size_a)
{
for(int inc=(size_a)/3+1;inc>=1;inc-=1)
for(int s=0;s<inc;++s)
subsort(arr,size_a,inc,s);
}
int main()
{
int a[]={1,2,3,4,5,1,7,8,1,0};
shellSort(a,sizeof(a)/sizeof(int));
for(int i=0;i<sizeof(a)/sizeof(int);i++)
printf("%d ",a[i]);
return 0;
}
[ 本帖最后由 sunkaidong 于 2008-5-8 20:14 编辑 ]