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语言实现归并排序算法的代码。通过这个例子,我们可以看到归并排序的具体实现过程,以及如何利用递归和分治法来实现排序算法。归并排序是一种高效稳定的排序算法,适用于各种规模的数据集合。

标签列表