二分探索のPHP実装サンプルコード

怪我咯
リリース: 2023-03-13 22:50:01
オリジナル
2071 人が閲覧しました

二分検索は、半検索とも呼ばれ、比較回数が少なく、検索速度が速く、平均パフォーマンスが高いという利点があります。欠点は、検索するテーブルが順序付きテーブルである必要があることと、挿入であることです。削除は難しいです。したがって、二分探索法は、頻繁には変更されないが、頻繁に検索される順序付きリストに適しています。まず、テーブル内の要素が昇順に配置されていると仮定し、テーブルの中央の位置に記録されているキーワードと検索キーワードを比較し、両者が等しい場合は検索が成功します。テーブルを最初と最後の 2 つのサブテーブルに分割します。 If 中央の位置に記録されたキーワードが検索キーワードより大きい場合は、前のサブテーブルがさらに検索され、そうでない場合は次のサブテーブルが検索されます。さらに遠く。条件を満たすレコードが見つかって検索が成功するまで、またはサブテーブルが存在しない場合は検索が失敗するまで、上記のプロセスを繰り返します。

ループ

function binary(&$arr,$low,$top,$target){
    while($low <= $top){        $mid = floor(($low+$top)/2);        echo $mid."<br>";        if($arr[$mid]==$target){            return $arr[$mid];
        }elseif($arr[$mid]<$target){            $low = $mid+1;                
        }else{            $top = $mid-1;
        }
    }    return -1;
}
ログイン後にコピー

再帰

function binaryRecursive(&$arr,$low,$top,$target){
    if($low<=$top){        $mid = floor(($low+$top)/2);        if($mid==$target){            return $arr[$mid];
        }elseif($arr[$mid]<$target){            return binaryRecursive($arr,$mid+1,$top,$target);
        }else{            return binaryRecursive($arr,$low,$top-1,$target);
        }
    }else{        return -1;
    }
}
ログイン後にコピー

注: 二分探索の前提は配列順序付け

です

以上が二分探索のPHP実装サンプルコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!