- /**Binary search: Find the position of a value in the array
- * @$arr: The array of operations, provided that it is arranged in order
- * @$val: The value to be searched for
- * @$low: The starting position of the search, the default is from the array Find the first number
- * @hight: The end position of the search
- **/
- function binarySearch($arr, $val, $hight, $low=0){
- while($low <= $hight){
- $ mid = ceil($low + ($hight - $low) / 2);
- if($arr[$mid] == $val){
- return $mid;
- }elseif($arr[$mid] > $val){
- $hight = $mid -1;
- }else{
- $low = $mid +1;
- }
- }
- return -1;
- }
- header('Content-Type: text/html; charset =utf-8');
-
- //Generate an array
- $arr = range(0,20);
- echo '
';</li>
<li>print_r($arr);</li>
<li>echo ' ' ;
-
- $low = 0;
- $hight = count($arr) - 1;
- $findVal = rand(0, 20);
- $index = binarySearch($arr, $findVal, $hight, $low);
- printf("The value '%d' found is the subscript '%s' in the array", $findVal, $index);
- ?>
Copy code
|