PHP算法之二分查找

Posted qiucw-cn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP算法之二分查找相关的知识,希望对你有一定的参考价值。

二分查找:
   数组必须有序,且不重复。

一般实际工作中,很少有这样的数组,所以应用的很少,但是思想很好.

 1 // 二分查找
 2 $array = [10,14,23,33,45,56,65,77,89,99,102];
 3 $find = 56;
 4 
 5 function search($array,$find)
 6 {
 7     $end = count($array)-1;            //求出最大的数组个数,并以此为结束
 8     $start = 0 ;                       //以0开始
 9     $mid = floor(($end + $start)/2);   //取二分查找的中间数
10     while ($start <= $end ){           //当最小下标<最大下标时继续,说明没有查找到
11         if($find < $array[$mid]){      
12             $end = $mid -1;            //如果查找的数小于中间数,那么区间的最大下标前移
13         }elseif ($find > $array[$mid]) {
14             $start = $mid +1;          //如果查找的数大于中间数,那么区间的最小下标后移
15         }else{
16             return $mid;               //返回查询得到的数字下标
17         }
18         $mid = floor(($end + $start)/2);
19     }
20 }
21 
22 echo search($array,$find);

技术图片

以上是关于PHP算法之二分查找的主要内容,如果未能解决你的问题,请参考以下文章

python算法之二分查找

常见算法之二分查找

Python 算法之二分查找

44期盘点那些必问的数据结构算法题之二分查找算法

算法之二分查找PK线性查找

查找算法之“二分查找”