在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;
}
答案 0 :(得分:0)
它只是存在,因此在函数的其余部分重复使用它时会更短。
使用i
&amp; j
直接作为参数名称不够描述,因此他将它们分配给函数体内的较短变量。
答案 1 :(得分:0)
是的,您可以将i
的所有实例替换为left
,将j
的所有实例替换为right
。
但你为什么要这样做?