欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

一个用PHP代码写的2分查找程序

程序员文章站 2022-06-17 10:47:34
...
一个用PHP代码写的二分查找程序
function BinSearch($a,$low,$heigh,$key){
if($low > $heigh){
return null;
}else{
$mid = (int)($low+$heigh)/2;
$mid = ceil($mid);
// echo "a[]:".$a[$mid]."
";
// echo "key:".$key."
";
if($key == $a[$mid]){
return $mid;
echo $mid;
}elseif($a[$mid] $low = $mid + 1;
BinSearch($a, $low, $heigh, $key);
}elseif ($a[$mid] > $key){
$heigh = $mid - 1 ;
BinSearch($a, $low, $heigh, $key);
}
return null;
}
}
$a = array(0,1,2,3,4,5,6,7,8,9);
$key = 3;
$result = BinSearch($a, 0, 9, $key);
echo "result:".$result."
";
?>
求大神指点我为什么得不出我想要的结果,程序哪里有问题?

------解决方案--------------------
没有返回递归调用时的返回值
PHP code
function BinSearch($a,$low,$heigh,$key){
  if($low > $heigh){
    return null;
  }else{
    $mid = (int)($low+$heigh)/2;
    $mid = ceil($mid);
    if($key == $a[$mid]){
      return $mid;
      echo $mid;
    }elseif($a[$mid]  $key){
      $heigh = $mid - 1 ;
      return BinSearch($a, $low, $heigh, $key);//还有这里
    }
    return null;
  }    
} 
一个用PHP代码写的2分查找程序

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频