ホームページ > バックエンド開発 > PHPチュートリアル > PHPコードで書かれた2点検索プログラム

PHPコードで書かれた2点検索プログラム

WBOY
リリース: 2016-06-13 13:22:32
オリジナル
946 人が閲覧しました

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] < $key){
$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."
";
?>
期待した結果が得られない理由を教えてください。プログラムの何が問題なのでしょうか?

-----解決策---------
再帰呼び出しには戻り値はありません

PHP コード
function BinSearch($a,$low,$heigh,$key){
  if($low > $heig){
    null を返します。
  }それ以外{
    $mid = (int)($low+$heigh)/2;
    $mid = ceil($mid);
    if($key == $a[$mid]){
      $mid を返します。
      エコー $mid;
    }elseif($a[$mid] < $key){
      $low = $mid + 1;
      return BinSearch($a, $low, $heigh, $key);//ここ
    }elseif ($a[$mid] > $key){
      $heigh = $mid - 1 ;
      return BinSearch($a, $low, $heigh, $key);//そしてここ
    }
    null を返します。
  }
<div class="clear"></div>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート