java实现对数组A ={5,9,3,2,1,8,0,4,6,7}的归并排序
时间: 2024-05-20 09:08:23 浏览: 12
Java实现归并排序的步骤如下:
1. 首先,将待排序数组不断拆分为两个子数组,直到每个子数组只有一个元素。
2. 然后,将这些子数组逐一合并起来。合并的过程中,需要比较两个子数组中的元素,将较小的元素放在前面,较大的元素放在后面。
3. 不断重复上述步骤,直到整个数组有序为止。
下面是Java代码实现:
```java
public static void mergeSort(int[] arr, int start, int end) {
if (start < end) {
int mid = (start + end) / 2;
// 递归拆分左右子数组
mergeSort(arr, start, mid);
mergeSort(arr, mid + 1, end);
// 合并左右子数组
merge(arr, start, mid, end);
}
}
private static void merge(int[] arr, int start, int mid, int end) {
int[] temp = new int[end - start + 1];
int i = start, j = mid + 1, k = 0;
while (i <= mid && j <= end) {
if (arr[i] <= arr[j]) {
temp[k++] = arr[i++];
} else {
temp[k++] = arr[j++];
}
}
while (i <= mid) {
temp[k++] = arr[i++];
}
while (j <= end) {
temp[k++] = arr[j++];
}
for (int l = 0; l < temp.length; l++) {
arr[start + l] = temp[l];
}
}
```