dougong5817 2019-01-21 10:43
浏览 41

递归算法似乎是正确的但不起作用

I am trying to write selection algorithm in php as recursive. As seen it is correct logic but it does not work. here ar code example:

$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);

and output is:

Notice: Undefined offset: 0 in test.pnp.php on line 20

Notice: Undefined offset: 0 in test.pnp.php on line 20

Notice: Undefined offset: 0 in test.pnp.php on line 20

Notice: Undefined offset: 0 in test.pnp.php on line 20

Notice: Undefined offset: 0 in test.pnp.php on line 20...

p.s. line 20 is part of code: if($arr[$min_index] > $arr[$i]){

  • 写回答

2条回答 默认 最新

  • douzhongjiu2263 2019-01-21 10:50
    关注

    there is a simple way to find minimum recursivly :

    function findMin($arr){
        $min = 0;
        foreach($arr as $item){
            if(is_array($item)){
                $val = findMin($item);
            }else{
                $val = $item;
            }
            $min  = $val<$min?$val:$min;
        }
        return $min;
    }
    

    also you can use min() function

    评论

报告相同问题?

悬赏问题

  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?