0

在 nczonline 的这个函数中,我注意到 left 和 right 被复制到 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

是的,您可以替换with的所有实例和iwith的left所有实例。jright

但是你为什么要这样做呢?

于 2013-09-13T01:45:15.983 回答