二分查找

 $high) return false;

    $mid = floor($low + ($high - $low) / 2);

    if ($search[$mid] == $find) {
        return $mid;
    } elseif ($search[$mid] > $find) {
        return binarySearch($search, $find, $low, $mid - 1);
    } else {
        return binarySearch($search, $find, $mid + 1, $high); }

    return false;
}

function binarySearchWithWhile(array $search, int $find)
{
    $low = 0;
    $high = count($search);

    $key = false;

    while ($low <= $high) {
        $mid = floor($low + ($high - $low) / 2);

        if ($search[$mid] == $find) {
            $key = $mid;
            break;
        } elseif ($search[$md] > $find) {
            $high = $mid - 1;
        } else {
            $low = $mid + 1;
        }
    }

    return $key;
}
此条目发表在 algorithm 分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*


*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>