Algorithm parsing:
If the search sequence has been sequenced, it should try to use their ordered characteristics to reduce the number of search comparison, this is the basic principle of search, binary search is the representative of this principle. In binary lookup, search from the middle of the sequence, if the number is less than the number we are looking for, the number to the left of the number must be less than the number you want to find, and if the number you are looking for is greater than the middle number, find it from the left.
Algorithm implementation:
<? Phpfunction Bin_sch ($array, $low, $high, $k) {if ($low <= $high) { $mid =intval (($low + $high)/2); if ($array [$mid]== $k) { return $mid; } ElseIf ($k < $array [$mid]) { return Bin_sch ($array, $low, $mid-1, $k); } else{ return Bin_sch ($array, $mid +1, $high, $k); }} return-1;}
Non-recursive version
function Binsearch ($key, $array) {$count =count ($array); $lower =0; $high = $count-1; while ($lower <= $high) { $ Middle=intval (($lower + $high)/2); if ($array [$middle]> $key) $high = $middle-1; else if ($array [$middle]< $key) $lower = $middle +1; else return $middle; } return-1;} $array = Array (0,1,2,3,4,5,6,7,8,9); Echo Binsearch (5, $array);
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Two-point Search