<?php ini_set('error_reporting', E_ALL); ini_set('display_errors', 'on'); function binary_search($a ,$b = 0) { $low = 0; $hign = count($a) -1; while ($hign >= $low) { $mid = floor(($low + $hign)/2); if ($a[$mid] == $b) { return $a[$mid]; } elseif ($a[$mid] > $b) { $hign = $mid - 1; } elseif($a[$mid] < $b) { $low = $mid + 1; } } return '没有相关字符'; } $a = [1,2,33,47,555,666,888]; $b =34; echo binary_search($a,$b);
1,二分查找做多需要log2n步;--对数是幂运算的逆运算。