#include<stdlib.h>
#include<stdio.h>
#include<time.h>
//插入排序
int* sort(int* array)
{
for(int i=1;array[i]!=NULL;i++)
{
int tmp=array[i];
for(int j=i;j>0&&tmp<array[j-1];j--)
array[j]=array[j-1];
array[j]=tmp;
}
return array;
}
//希爾排序
int* shell(int* array,int N)
{
int increse,i,j,tmp;
for(increse=N/2;increse>0;increse/=2)
{
for(i=increse;i<N;i++)
{
tmp=array[i];
for(j=i;j>=increse;j-=increse)
{
if (tmp<array[j-increse])
array[j]=array[j-increse];
else
break;
}
array[j]=tmp;
}
}
return array;
}
//輸出數字
void print(int* array,int n)
{
printf("\n");
for(int i=0;i<n;i++)
{
printf("\n%d ",array[i]);
}
}
int main()
{
srand( (unsigned int)time(0) );
int a[7];
for(int i=0;i<7;i++)
a[i]=rand();
int *b=shell(a,7);
print(b,7);
getchar();
}