您的位置:首页 > 编程语言 > PHP开发

php 二分查找

2016-12-14 10:59 246 查看
<?php

$arr=array(1,4,10,20,30,50,70,100,110,120);

$i=110;

$a=binarySearch($arr,$i);

echo $a;

 #二分查找

 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);

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  二分查找