首页 > 编程语言 > 详细

数组查找之二分查找-PHP

时间:2017-09-22 09:33:25      阅读:242      评论:0      收藏:0      [点我收藏+]
 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

原文:http://www.cnblogs.com/tandi19960505/p/7572395.html

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