归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。
分治法将问题分(divide)成一些小的问题利用递归求解,治(conquer)是将分的阶段得到的各答案"修补"在一起,即分而治之。
直接看代码吧,为了能清晰的了解递归的过程,笔者加了很多不必要的输出。
import java.util.Arrays;
public class MergeSort {
//归并排序
public static void main(String[] args) {
int[] arr = {
8, 5, 3, 6, 9, 1, 4, 7};
int[] temp = new int[arr.length];
mergeSort(arr, 0, arr.length-1, temp);
System.out.println("排序结果:" + Arrays