基本思想
归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。
代码实现
#includeusing namespace std;void MergeArray(int Array[], int First, int Middle, int Last, int P[]){ int i = First, j = Middle + 1; int m = Middle, n = Last; int k = 0; while (i <= m&&j <= n) { if (Array[i] <= Array[j]) { P[k] = Array[i]; ++k; ++i; } else { P[k] = Array[j]; ++k; ++j; } } while (i <= m)//若后一个表被取空 { P[k] = Array[i]; ++k; ++i; } while (j <= n)//若前一个表被取空 { P[k] = Array[j]; ++k; ++j; } for (int i = 0; i