PHP二分法

483 ワード

function binarySearch($a, $val) {
    $low = 0;
    $high = count($a) - 1;
    while ($low <= $high) {
        $mid = intval(($low + $high) / 2);
        if ($a[$mid] == $val)
            return $mid;
        if ($a[$mid] > $val) {
            $high = $mid - 1;
        } else {
            $low = $mid + 1;
        }
    }
    return -1;
}


 $a=array(1,2,3,4,5,8,69,100);
 echo  "you find de num is from left to right:".(binarySearch($a,8)+1);