前言
参考书籍:
《数据结构与算法分析·C语言描述》
《算法·第4版》
归并排序只有两大难点,一是分,二是并。
合并
static void merge(int[] a, int low, int mid, int high) {
int i = low, j = mid + 1;
for (int k = low; k <= high; k++) {
aux[k] = a[k];
}
for (int k = low; k <= high; k++) {
if (i > mid) a[k] = aux[j++];
else if (j > high) a[k] = aux[i++];
else if (aux[i] > aux[j]) a[k] = aux[j++];
else a[k] = aux[i++];
}
}
上面这是合并的代码