一、插入排序
void Insertion_Sort(ElementType A[], int N)
{
for (P = 1; p < N; P++) {
Tmp = A[P]; // 取出未排序序列中的第一个元素
for (i = p; i > 0 && A[i-1] > Tmp; i--) {
A[i] = A[i-1]; // 依次与已排序序列中元素比较并右移
}
A[i] = Tmp; // 放进合适的位置
}
}
二、希尔排序
void Shell_sort(ElementType A[], int N)
{
for (D = N/2; D > 0; D /= 2) { // 希尔增量序列
for (P = D; P < N; P++) { // 插入排序
Tmp = A[P];
for (i = P; i>=D && A[i-D]>Tmp; i-=D) {
A[i] = A[i-D];
}
A[i] = Tmp;
}
}
}