点击查看代码
int[] sort(int[] array, int start, int end) {
if (start == end) {
return new int[]{array[start]};
}
int i = 0;
int j = 0;
int k = 0;
int middle = (start + end) >> 1;
int[] left = sort(array, start, middle);
int[] right = sort(array, middle + 1, end);
int[] third = new int[left.length + right.length];
while (i < left.length && j < right.length) {
third[k++] = (left[i] < right[j] ? left[i++] : right[j++]);
}
while (i < left.length) {
third[k++] = left[i++];
}
while (j < right.length) {
third[k++] = right[j++];
}
return third;
}