java归并排序算法代码(java合并排序算法)
Java归并排序算法代码
---
**介绍**
归并排序是一种常见的排序算法,它采用分治法的思想,将待排序的数组分为两个子数组,然后分别对子数组进行排序,最后合并两个有序数组,得到排好序的数组。归并排序具有稳定性和适应性好的特点,适合处理大数据量的排序任务。
---
**算法实现**
下面是Java语言实现归并排序算法的代码:
```java
public class MergeSort {
public static void mergeSort(int[] array) {
if (array == null || array.length <= 1) {
return;
}
sort(array, 0, array.length - 1);
}
private static void sort(int[] array, int start, int end) {
if (start >= end) {
return;
}
int mid = start + (end - start) / 2;
sort(array, start, mid);
sort(array, mid + 1, end);
merge(array, start, mid, end);
}
private static void merge(int[] array, int start, int mid, int end) {
int[] temp = new int[array.length];
int i = start;
int j = mid + 1;
int k = start;
while (i <= mid && j <= end) {
if (array[i] <= array[j]) {
temp[k++] = array[i++];
} else {
temp[k++] = array[j++];
}
}
while (i <= mid) {
temp[k++] = array[i++];
}
while (j <= end) {
temp[k++] = array[j++];
}
for (int l = start; l <= end; l++) {
array[l] = temp[l];
}
}
public static void main(String[] args) {
int[] array = {5, 2, 9, 4, 7, 6, 1, 3, 8};
mergeSort(array);
System.out.println("Sorted Array: ");
for (int num : array) {
System.out.print(num + " ");
}
}
```
---
**说明**
在以上代码中,我们先定义了一个`mergeSort`方法,用来对传入的数组进行归并排序。然后实现了`sort`方法,将数组分为两个子数组,并递归对子数组进行排序。最后实现了`merge`方法,用来合并两个有序数组。
在`main`方法中,我们定义了一个未排序的整型数组,调用`mergeSort`方法进行排序,并输出排序后的数组。
这样,就完成了Java语言实现归并排序算法的代码。通过这个例子,我们可以看到归并排序的具体实现过程,以及如何利用递归和分治法来实现排序算法。归并排序是一种高效稳定的排序算法,适用于各种规模的数据集合。