JAVA之归并排序
归并排序,先归之再并之。
如何归呢?
先看总函数
public static int[] MargeSort(int a[]) {
if (a.length < 2) {
return a;
} else {
int c[] = new int[a.length / 2];
System.arraycopy(a, 0, c, 0, a.length / 2);
int d[] = new int[a.length - (a.length / 2)];
System.arraycopy(a, (a.length / 2), d, 0, a.length - (a.length / 2));
c = MargeSort(c);
d = MargeSort(d);
return Sort(c, d);
}
}
下面的代码是归的过程,写代码的时候一定要注意数组的复制过程,稍不小心就容易把数组的前半部分复制给两个数组。
int c[] = new int[a.length / 2];
System.arraycopy(a, 0, c,