用 java 写一个归并排序
时间: 2023-03-13 20:12:28 浏览: 59
中文:public static void mergeSort(int[] arr) {
int len = arr.length;
if(len < 2) {
return;
}
int mid = len / 2;
int[] left = Arrays.copyOfRange(arr, 0, mid);
int[] right = Arrays.copyOfRange(arr, mid, len);
mergeSort(left);
mergeSort(right);
merge(arr, left, right);
} public static void merge(int[] arr, int[] left, int[] right) {
int leftLen = left.length;
int rightLen = right.length;
int i = 0, j = 0, k = 0;
while(i < leftLen && j < rightLen) {
if(left[i] <= right[j]) {
arr[k++] = left[i++];
} else {
arr[k++] = right[j++];
}
}
while(i < leftLen) {
arr[k++] = left[i++];
}
while(j < rightLen) {
arr[k++] = right[j++];
}
}