标签:
//有一个数组 {1,2,3,4,5,6,7,8,9,12,13,45,67,89,99,101,111,123,134,565,677} 查找数组中是否有指定的某一个数.
1 /** 2 *---------------------------------------- 3 * Time:2016-06-21 | 二分查找 4 *--------------------------------------- 5 */ 6 function binarySearch(&$arr,$findVal,$leftIndex,$rightIndex){ 7 if($rightIndex < $leftIndex){ 8 echo "哇哇哇,找不到o(︶︿︶)o 唉"; 9 return; 10 } 11 // @ 取中间的key 12 $middleIndex=round(($rightIndex+$leftIndex)/2); 13 if($findVal > $arr[$middleIndex]){ 14 binarySearch($arr,$findVal,$middleIndex+1,$rightIndex); 15 }else if($findVal < $arr[$middleIndex]){ 16 binarySearch($arr,$findVal,$leftIndex,$middleIndex-1); 17 }else{ 18 echo "哇哇哇找到你了o(∩_∩)o 哈哈。下标是$middleIndex"; 19 } 20 } 21 $arr=array(1,2,3,4,5,6,7,8,9,12,13,45,67,89,99,101,111,123,134,565,677); 22 print_r(binarySearch($arr,89,0,count($arr)-1));
标签:
原文地址:http://www.cnblogs.com/puler/p/5613028.html