PHP は、順序付けられた配列に特定の値が含まれているかどうかを調べます (二分探索)
質問: 順序付き配列の場合、指定された値が配列内に存在するかどうかを確認する方法。
アイデア: 存在するかどうかを判断する最も簡単な方法は、配列を直接ループして各値を比較することです。しかし、順序付けされた配列の場合、このように記述すると、「順序付けされた」機能を完全に活用できません。
すべて「二分探索」を使用します。
//有序数组为 $arr = array(2,5,66,87,954,1452,5865); //查找值 $str = 1452; //我们先定义 三个参数 $front = 0;//一个开始值下标 $end = count($arr) - 1;//一个结束值下标 $mid = intval(($front + $end) / 2);//中间值下标
1。最初の比較では、検索値 str が中間値 Mid に等しいかどうかを直接判断し、等しい場合は、直接 true を返します;
2. 検索値 str が中間値 Mid より大きい場合、検索値 str が中間値の右側、つまり開始値の前にある可能性があることを意味します。再割り当てする必要があります = 中間値 Mid 1、および終了値 end は変更する必要がなく、中間値は連続的にあり、mid は新しい開始値と終了値です;
3. 検索の場合値 str が中間値 Mid より小さい場合、これは、検索値 str が中間値の左側にある可能性があること、つまり、開始値を変更する必要がなく、終了値 end を再割り当てする必要があることを意味します。中間値 - 1、中間値 Mid は開始値と新しい終了値になります。
-----上記のように、受信した開始値、終了値、中間値を比較します。開始値が終了値より大きい場合は、その値が見つからなかったことを意味し、クエリは終了します。それ以外の場合は、見つかったことが返されます。
具体的なコードは次のとおりです:
$str = 89;//查找值 $arr = [1,55,66,89,420];//有序数组 $ren = find($arr, $str); echo '<pre class="brush:php;toolbar:false">'; var_dump($ren); function find($arr, $str){ $front = 0;//开始下标 $end = count($arr) - 1;//结束下标 while($front <= $end){//结束值 大于 开始值 ,反之则退出 $mid = intval(($front + $end) / 2);//中间值下标 if($str == $arr[$mid]){ return $mid;//存在直接返回值的下标 } if($str > $arr[$mid]){ $front = $mid + 1;//在前面 } if($str < $arr[$mid]){ $end = $mid - 1;//在后面 } } return false; }
戻り結果: 89 は 4 番目の要素値の添字 3
推奨ビデオチュートリアル:「php チュートリアル」
以上がPHP は、順序付けられた配列に特定の値が含まれているかどうかを調べます (二分探索)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます
