ホームページ >バックエンド開発 >PHPチュートリアル >PHP バイナリ検索の混乱
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