书写技术成长之路

二分查找算法

<?php

/**
* binary search
*/
function binary_search($array, $find, $low, $high)
{
    if ($low <= $high) {
        $middle = intval(($low+$high)/2);
    }
    if ($array[$middle] == $find) {
        return $middle;
    } elseif ($array[$middle] < $find) {
        return binary_search($array, $find, $middle+1, $high);
    } else {
        return binary_search($array, $find, $low, $middle-1);
    }
}

$array = [2, 6, 10, 23, 46, 54, 62, 72, 83, 96];
$index = binary_search($array, 23, 0, count($array));
echo $index;