归并排序

归并排序是通过将已经有序的两个数组合并成一个数组来完成排序的。因为只有数组长度为1的数组自然是有序的,所以就可以将长度为N的数组分隔为N个长度为1的有序数组。然后将N个数组两两合并,不断重复这个过程直到所有的数组合并为一个有序数组,排序完成。算法实现算法的实现通常和上面描述的算法思想有点不同,算法思想可以看作是一个Bottom-up过程,算法实现则多数采用Top-down的方式,通过递归调用来实现。代码示例 public static void sort(int[] a) { int[] temp = new int[a.length]; merge(a, temp, 0, a.length-1); } private static void merge(int[] data, int[] temp, int low, int high) { if (low == high) { return; } int mid = (low + high)/2; merge(data,

你可能感兴趣的:(算法,UP)