下面是代码 我的问题是 Merge方法里面的那四种判断是根据什么来的?j>hi是怎么回事,
public class Merge { private static Comparable[] b; public static boolean less(Comparable v, Comparable w) { return v.compareTo(w) < 0; } public static void merge(Comparable[] a, int lo, int mid, int hi) { int i = lo; int j = mid + 1; for (int k = lo; k < hi + 1; k++) { b[k] = a[k]; } for (int k = lo; k < hi + 1; k++) { if (i > mid) { a[k] = b[j++]; } else if (j > hi) { a[k] = b[i++]; } else if (less(b[i], b[j])) { a[k] = b[i++]; } else { a[k] = b[j++]; } } } ...
相关分类