您现在的位置是:网站首页>算法>二分查找算法
二分查找
admin【算法】13人已围观
原理:假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
代码实例
<?php // 二分查找 header("Content-type: text/html; charset=utf-8"); function dump($res){ echo "<pre>"; var_dump($res); echo "</pre>"; } function findval($arr,$key,$first,$last){ if($first<=$last){ $mid = intval(($last+$first)/2); if($arr[$mid] == $key){ return $mid; } if($arr[$mid] > $key){ return findval($arr,$key,$first,$mid-1); } if($arr[$mid] < $key){ return findval($arr,$key,$mid+1,$last); } }else{ return false; } } // 升序的数组 $arr=array(1,2,4,5,6,7,8,9,11,12,15,16,17,22,44,45,66); $val = findval($arr,6,0,count($arr)); dump($val); ?>
运行结果
int(4)
站点信息
- 建站时间:2019-3-10
- 网站程序:ThinkPHP PHP MYsql
- 路由说明:全站静态化+api
- 统计数据:百度统计
- 登陆方式:githua授权登陆
- 个人邮箱:2584496361@qq.com
- 个人Q Q:2584496361
- 业务咨询:有需要建站朋友欢迎咨询