0
void merge(List<E> l, int lower, int upper) {
    ArrayList<E> array = new ArrayList<E>();
    for (int i = lower; i <= upper; i++)
        array.add(list.get(i));
    int front= 0;
    int front2= (array.size() + 1) / 2;

    for (int i = lower; i <= upper; i++) {
        if (front2 >= array.size() || 
           (first < ((array.size() + 1) / 2) &&
           (array.get(first).compareTo(array.get(second)) <= 0))) {
            l.set(i, array.get(front));
            front++;
        }// end if
        else {
            l.set(i, array.get(front2));
            front2++;
        }
    }
}

这是我的方法。我想将其更改为完全递归(我不想使用 for 循环),但我根本不知道如何。有没有办法使这个递归或避免使用循环?

4

0 回答 0