每日一算法one
Posted Codinger
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一算法one相关的知识,希望对你有一定的参考价值。
//有一个数组 {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));
以上是关于每日一算法one的主要内容,如果未能解决你的问题,请参考以下文章