数组查找之二分查找-PHP

Posted 巅峰小学生

tags:

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

 1 <?php
 2     //设置请求头
 3     header("content-type:text/html;charset=utf-8");
 4 
 5     /*
 6         二分差查找:
 7             源:数组
 8             条件:必须是有序的数据,要么从小到大,要么从大到小
 9             
10     */
11 
12     $arr = array(1,2,3,4,5);
13     
14     /*
15         @$arr                源数组
16         @$arr_start_index    开始下标
17         @$arr_end_index        结束下标
18         @$number            要查找的数
19     */
20     function search(&$arr, $arr_start_index, $arr_end_index, $number){
21 
22         //防止下标重合
23         if($arr_start_index > $arr_end_index){
24             echo ‘不存在改值‘;
25             exit;
26         }
27         
28         $arr_center_index = round( ($arr_start_index + $arr_end_index)/2 ); //向下取整
29         
30         if($arr[$arr_center_index] > $number){
31             search($arr, $arr_center_index, $arr_end_index-1, $number);
32         }
33 
34         else if($arr[$arr_center_index] < $number){
35             search($arr, $arr_start_index+1, $arr_center_index, $number);        
36         }
37 
38         else if($arr[$arr_center_index] == $number){
39             echo ‘存在给值,该值在数组中的下标为:‘ . $arr_center_index;
40             exit;
41         }
42 
43         echo ‘不存在改值‘;
44         exit;
45     }
46 
47     search($arr, 0, 4,5);
48 
49 ?>

 

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

PHP算法之二分查找

经典算法之二分查找:编写代码在一个整形有序数组中查找具体的某个数 找到了就打印数字所在的下标,找不到则输出:找不到。

PHP数组的二分查找算法

PHP查找一列有序数组是否包含某值(二分查找)

一维数组之二分查找

php实现二分查找法