每日一算法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的主要内容,如果未能解决你的问题,请参考以下文章

JAVA每日一旅3

算法·每日一题(详解+多解)-- day14

算法·每日一题(详解+多解)-- day14

Java算法 每日一题 编号35:搜索插入位置

每日一练5

每日一学|最短路径:Dijkstra 算法和 Floyd 算法