PHP バイナリ検索の混乱

WBOY
WBOYオリジナル
2016-06-13 12:15:101060ブラウズ

PHP バイナリ検索に関する混乱
44a868b8260eefbda0062f2cb1ec4c24$FindVal){
Search($Arr,$FindVal,$LeftIndex,--$MiddleIndex);
}else{
echo "次のように添え字を検索します$MiddleIndex";
}
}
}

このコードがいくつかの機能を実行するかどうか友達に尋ねたいと思います。タイミング図を詳しく説明できる人はいますか?ありがとう、感謝しています。
------解決策のアイデア----------------------

$Arr = array(1,3,4,5,7,8,9);<br />Search($Arr,7,0,count($Arr)-1);<br /><br />function Search($Arr,$FindVal,$LeftIndex,$RightIndex){<br />  echo "$FindVal,$LeftIndex,$RightIndex\n"; //加上这句<br />  if($FindVal>$Arr[count($Arr)-1]){<br />    echo "找不到该值";<br />  }else if($FindVal<$Arr[0]){<br />    echo "找不到该值";<br />  }else{<br />    $MiddleIndex=round(($LeftIndex+$RightIndex)/2);<br />    if ($Arr[$MiddleIndex]<$FindVal){<br />      Search($Arr,$FindVal,++$MiddleIndex,$RightIndex);<br />    }else if($Arr[$MiddleIndex]>$FindVal){<br />      Search($Arr,$FindVal,$LeftIndex,--$MiddleIndex);<br />    }else{<br />      echo "找到下标为$MiddleIndex";<br />    }<br />  }<br />}
7,0,6
7,4,6​​
7,4,4
添え字 4 を見つけます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。