题干:
2.3-2 重写过程MERGE,使之不使用哨兵,而是一旦数组L或R所有元素均被复制回A就立刻停止,然后把拎一个数组的剩余部分复制回A.
function mergeAction()
{
$L = [1, 3, 5, 6];
$R = [2, 4, 7, 8];
$A = [];
$i = 0;
$j = 0;
$k = 0;
while (true) {
if (!isset($L[$i])) {
while (true) {
if (!isset($R[$j])) {
break;
}
$A[$k] = $R[$j];
$j++;
$k++;
}
break;
} elseif (!isset($R[$j])) {
while (true) {
if (!isset($L[$i])) {
break;
}
$A[$k] = $L[$i];
$i++;
$k++;
}
break;
}
if ($L[$i] < $R[$j]) {
$A[$k] = $L[$i];
unset($L[$i]);
$k++;
$i++;
} else {
$A[$k] = $R[$j];
unset($R[$j]);
$k++;
$j++;
}
}
var_dump($A);
}