配列に特定の要素が含まれているかどうかを確認するバイナリ メソッド (順方向および逆順と互換性があります)、コード実装:
コードをコピー コードは次のとおりです:
$searchValue = (int )$_GET['key' ];
関数 search(array $array, $value)
{
$max = count($array)-1;
$min = 0;
$isAscSort = $array[$min ] < $array[$ max];
while (TRUE) {
$sum = $min+$max;
$midKey = (int)($sum%2 == 1 ? ceil($sum/2) : $sum/2);
A if ($ max & lt; $ min) {
return -1; else if ($ value == $ array [$midkey]) {
return 1; else if ( $ 値 & $ 配列 MidKey]) {
' 11', '12'
);
// 順方向
echo search($array, $searchValue);
// 逆方向
rsort($array) ;
echo search($array, $searchValue);
私は以前にこれを検索したことがあり、Baidu Encyclopedia (Java の実装) で例を見たことがあり、他の技術マニアが書いたコードもいくつかありました。これらの人々は人々を誤解させるためにテストせずにリリースしています。昨日は何もすることがなかったので、みんなに共有するために書きました。
この配列は非シーケンシャルキーを考慮していません。これは主に必要に応じて拡張できるメソッドです。
http://www.bkjia.com/PHPjc/327121.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/327121.html
技術記事
配列に特定の要素が含まれているかどうかを確認するためのバイナリ メソッド (順方向および逆順と互換性があります) のコード実装: 次のようにコードをコピーします。 ?php $searchValue = (int)$_GET['key']; 、$va.. .