0

この nczonline の関数では、左と右が i と j にコピーされているが、その後は使用されていないことに気付きました。左右または i と j のいずれかを削除する方法はありますか?

function partition(items, left, right) {
    var pivot   = items[Math.floor((right + left) / 2)],
        i       = left,
        j       = right;
    while (i <= j) {
        while (items[i] < pivot) {
            i++;
        }
        while (items[j] > pivot) {
            j--;
        }
        if (i <= j) {
            swap(items, i, j);
            i++;
            j--;
        }
    }
    return i;
}
4

2 に答える 2

0

関数の残りの部分で繰り返し使用されるときに短くなるように、単にそこにあるだけです。

i引数名として&を直接使用jするのは説明的ではないため、関数本体内の短い変数にそれらを割り当てています。

于 2013-09-13T01:45:06.973 に答える
0

iはい、 のすべてのインスタンスとのleftすべてのインスタンスをjで置き換えることができますright

しかし、なぜそれをしたいのですか?

于 2013-09-13T01:45:15.983 に答える