一、需掌握的内排序
其中堆排序、快速排序和归并排序是重点。
二、各大排序算法详解
1.插入排序
1.1直接插入排序
void InsertSort(ElemType A[], int n){
int i,j;
for(i = 2; i <= n; i++)
if(A[i] < A[i-1]){
A[0] = A[i];
for(j = i - 1; A[0] < A[j]; --j)
A[j+1] = A[j];
A[j+1] = A[0];
}
}
1.2折半插入排序
//折半插入排序
void InsertSort(ElemType A[], int n) {
int i, j, low, high, mid;
for (i = 2; i <= n; i++) {
A[0] = A[i];
low = 1; high = i - 1;
while (low <= high) {
mid = (low + high) / 2;
if (A[mid] > A[0]) high = mid - 1;
else low = mid + 1;
}
for (j = i