码迷,mamicode.com
首页 > 编程语言 > 详细

每日一算法【one】

时间:2016-06-24 09:16:02      阅读:150      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!