代码很简单的,多看看就会啦~~冲呀!!!
public static int[] sort(int[] array, int left, int right) {
if (left == right) {
return new int[] { array[left] };
}
int mid = (right + left) / 2;
int[] l = sort(array, left, mid);
int[] r = sort(array, mid + 1, right);
return merge(l, r);
}
// 将两个数组合并成一个
public static int[] merge(int[] l, int[] r) {
int[] result = new int[l.length + r.length];
int p = 0;
int lp = 0;
int rp = 0;
while (lp < l.length && rp < r.length) {
result[p++] = l[lp] < r[rp] ? l[lp++] : r[rp++];
}
while (lp < l.length) {
result[p++] = l[lp++];
}
while (rp < r.length) {
result[p++] = r[rp++];
}
return result;
}