java的归并排序怎么写
时间: 2023-02-19 10:29:49 浏览: 74
归并排序是一种分治算法,它将一个大的数据集分成若干个较小的数据集,然后对每个小的数据集进行排序,最后将排序好的小的数据集合并成一个大的有序数据集。在Java中,可以使用如下代码实现归并排序:
public static void mergeSort(int[] array) {
if (array == null || array.length == 0) {
return;
}
int[] tempArray = new int[array.length];
mergeSort(array, 0, array.length - 1, tempArray);
}
public static void mergeSort(int[] array, int left, int right, int[] tempArray) {
if (left < right) {
int mid = (left + right) / 2;
mergeSort(array, left, mid, tempArray);
mergeSort(array, mid + 1, right, tempArray);
merge(array, left, mid, right, tempArray);
}
}
public static void merge(int[] array, int left, int mid, int right, int[] tempArray) {
int i = left;
int j = mid + 1;
int k = 0;
while (i <= mid && j <= right) {
if (array[i] < array[j]) {
tempArray[k++] = array[i++];
} else {
tempArray[k++] = array[j++];
}
}
while (i <= mid) {
tempArray[k++] = array[i++];
}
while (j <= right) {
tempArray[k++] = array[j++];
}
for (int p = 0; p < k; p++) {
array[left + p] = tempArray[p];
}
}