PHP 二分查找实例

<?php
#二分查找
function binarySearch(Array $arr, $target) {
$low = 0;
$high = count($arr) - 1;

    while($low <= $high) {
        $mid = floor(($low + $high) / 2);
        #找到元素
        if($arr[$mid] == $target) return $mid;
        #中元素比目标大,查找左部
        if($arr[$mid] > $target) $high = $mid - 1;
        #重元素比目标小,查找右部
        if($arr[$mid] < $target) $low = $mid + 1;
    }
    
    #查找失败
    return false;
}

$arr = array(1, 3, 5, 7, 9, 11);
$inx = binarySearch($arr, 1);
var_dump($inx);

?>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • PHP 学习目录 ├─PHP视频教程 1 LAMP网站构建 │ ├─PHP教程 1.1.1 新版视频形式介绍│ ...
    曹渊说创业阅读 16,186评论 29 417
  • Composer Repositories Composer源 Firegento - Magento模块Comp...
    零一间阅读 3,970评论 1 66
  • ziadoz在 Github发起维护的一个PHP资源列表,内容包括:库、框架、模板、安全、代码分析、日志、第三方库...
    Gundy_阅读 6,360评论 4 192
  • 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 无序列表1 无序列表2 无序列表3 有序列表1 有序列...
    知德阅读 454评论 0 0
  • 一、iStat Menus 苹果Geeker必备的系统与硬件监控软件. 可以在Finder菜单栏显示CPU使用率,...
    any_where阅读 4,736评论 1 30