下面是代码 我的问题是 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++];
}
}
}
...
添加回答
举报
0/150
提交
取消