public void merge(int[] array, int low, int mid, int high) {
int[] temp = new int[array.length];
int i = low;
int j = mid + 1;
int k = 0;
while (i <= mid && j <= high) {
if (array[i] < array[j]) {
temp[k++] = array[i++];
} else {
temp[k++] = array[j++];
}
}
while (i <= mid) {
temp[k++] = array[i++];
}
while (j <= high) {
temp[k++] = array[j++];
}
//复制temp数组中的数据到原来的数组当中
for (int x = 0; x < temp.length; x++) {
array[x + low] = temp[x];
}
}
public void mergeSort(int[] array, int low, int high) {
int mid = (low + high) / 2;
if (low < high) {
mergeSort(array, low, mid);
mergeSort(array, mid + 1, high);
merge(a,low,mid,high);
}
}