首页 > 编程语言 > 详细

每日一算法【one】

时间:2016-06-24 09:13:14      阅读:223      评论:0      收藏:0      [点我收藏+]

//有一个数组  {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】

原文:http://www.cnblogs.com/puler/p/5613028.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!