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

    评论

报告相同问题?

悬赏问题

  • ¥15 github符合条件20分钟秒到账,github空投 提供github账号可兑换💰感兴趣的可以找我交流一下
  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?