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