插入排序
/* 插入排序 */
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;
}
}
希尔排序
/* 使用希尔增量的希尔排序 */
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; j -= Increment)
if(Tmp < A[j - Increment])
A[j] = A[j - Increment];
else
break;
A[j] = Tmp;
}
}
}