二分探索は、ソートされた配列内の要素を見つけるためのより効率的なアルゴリズムです。これは、検索間隔を繰り返し半分に分割することで機能します。 binarySearch 関数の詳細な内訳は次のとおりです:
function binarySearch(array $arr, float|int $x) { $low = 0; $high = count($arr)-1; // $midIndex = (int) ($low + ($high - $low)/2); $i = 0; while($low <= $high){ $i++; $midIndex = (int) ($low + (($high - $low)/2)); //the same as intdiv($low + $high, 2); if($arr[$midIndex] == $x){ return "The number {$x} was found in index {$midIndex} of the array. The number of iteration was {$i}"; }elseif($x > $arr[$midIndex]){ $low = $midIndex +1; echo $low."\n"; }else{ $high = $midIndex - 1; } } return "The number {$x} was not found in the array"; } echo binarySearch([1,2,3,4,5,6,7,8,9,10,44,45,46,47,48,49,50], 45)
関数 binarySearch は 2 つのパラメータを受け入れます:
線形検索は、配列内の特定の要素を見つけるために使用される最も単純な検索アルゴリズムの 1 つです。 PHP の LinearSearch 関数を詳しく見てみましょう。
function linearSearch(array $arr, float|int $x) { for($i=0; $i < count($arr); $i++){ if($x === $arr[$i]){ return "The number {$x} was found in index {$i} of the array\n"; } } return "The number {$x} was not found in the array\n"; } echo linearSearch([1,5,6,3,4,11,3,2], 4);
関数 LinearSearch は 2 つのパラメータを受け入れます:
以上が検索アルゴリズムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。