二分查找使用前提:1)存储在数组中(数组可以实现随机读取);2)数组元素有序(升序或降序);3)数组元素没有重复

时间复杂度:logn。【log8=3 ,, log16=4】(这里的log是以2为底的!!!)

程序是写完源代码后,计算机编译后得到的可执行文件。

//二分查找
function binarySearch($arr,$k,$low=0,$high=0){
    $len = count($arr);
    //判断是不是第一次调用
    if($len != 0 && $high == 0){
        $high = $len;
    }
    if($low<=$high){
        $mid = intval(($low+$high)/2);
        if($arr[$mid] == $k){
            return $mid;
        }elseif($k<$arr[$mid]){
            return binarySearch($arr,$k,$low,$mid-1);
        }else{
            return binarySearch($arr,$k,$mid+1,$high);
        }
    }
    return '没有要查找的值';

}
$arr = [1,2,3,5,7,9,15,16,20];
echo '您要找的值在数组中下标为'.binarySearch($arr,9);