1.插入排序
void
insertionSort( int A[ ], int N )
{
int j, P;
int Tmp;
for( P = 1; P < N; P++ )
{
Tmp = A[ P ];
for( j = P; j > 0 && A[ j - 1 ] > Tmp; j-- )
A[ j ] = A[ j - 1 ];
A[ j ] = Tmp;
}
}
2.希尔排序
void shellSort(int a[],int n)
{
int i,j,increment;
int tmp;
for(increment=n/2;increment>0;increment/=2)
for(i=increment;i<n;i++)
{
tmp=a[i];
//for(j=i;j>=increment&&tmp<a[j-increment];j-=increment)
//非j>increment&&tmp<a[j-1];j--
// a[j]=a[j-1]; 非 a[j]=a[j-1];
//for(j=i;j>=increment&&tmp<a[j-increment];j-=increment)
// a[j]=a[j-1]; 另一种写法,正确
for(j=i;j>=increment;j-=increment)
if(tmp<a[j-increment])
a[j]=a[j-increment];
else
break;
a[j]=tmp;
}
}