关于java归并排序的问题

下面是代码 我的问题是 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++];
            }
        }
    }

 ...


跃然一笑
浏览 776回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java