php 二分查找法

题目:给定一个有序数组$array,找到目标值$k的下标

思路:有序数组就可以进行范围排除,用数组的中值是否等于目标值进行排除,然后再根据大小使用左边或者右边的有序数组继续进行排除

function binSch($array, $low, $height, $k) {
    if ($low < $height) {
            $mid = intval(($low + $high) / 2);
            if ($array[$mid] == $k) {
                return $mid;
            } elseif ($k < $array[$mid]) {
                return binSch($array, $low, $mid - 1, $k);
            } else {
                return binSch($array, $mid + 1, $high, $k);
            }
    }    
    return -1;
}

 

posted @ 2021-08-13 16:10  风哀伤  阅读(32)  评论(0编辑  收藏  举报