【发布时间】:2019-06-14 17:44:49
【问题描述】:
我正在尝试将 php 中的选择算法编写为递归的。 正如所见,这是正确的逻辑,但它不起作用。 这里是代码示例:
$array = [4,5,22,0,-9];
function findmin($arr){
if(sizeof($arr) > 0){
$min_index = 0;
for ($i = 1; $i < sizeof($arr); $i++){
if($arr[$min_index] > $arr[$i]){
$min_index = $i;
}
}
unset($arr[$min_index]);
findmin($arr);
}
}
findmin($array);
输出是:
注意:未定义的偏移量:第 20 行 test.pnp.php 中的 0
注意:未定义的偏移量:第 20 行 test.pnp.php 中的 0
注意:未定义的偏移量:第 20 行 test.pnp.php 中的 0
注意:未定义的偏移量:第 20 行 test.pnp.php 中的 0
注意:未定义的偏移量:第 20 行 test.pnp.php 中的 0...
附言第 20 行是代码的一部分:if($arr[$min_index] > $arr[$i]){
【问题讨论】:
-
当你取消设置数组中的元素时,键保持不变,重新索引你的数组
-
您需要在取消设置值后检查数组,还需要更新 $min_index 因为循环后它总是尝试取消设置第 0 个索引
-
不应该是找到最小回报的方法吗?
-
这是做什么用的?