下面是代碼 我的問題是 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
提交
取消