• 二分查找


    二分查找算法

    /**
     * 二分查找算法
     * @param array $arr 待查找区间
     * @param int $number 查找数
     * @return int        返回找到的键
     */
    function binary_search($arr, $number) {
        // 非数组或者数组为空,直接返回-1
        if (!is_array($arr) || empty($arr)) {
            return -1;
        }
        // 初始变量值
        $len = count($arr);
        $lower = 0;
        $high = $len - 1;
        // 最低点比最高点大就退出
        while ($lower <= $high) {
            // 以中间点作为参照点比较
            $middle = intval(($lower + $high) / 2);
            if ($arr[$middle] > $number) {
                // 查找数比参照点小,舍去右边
                $high = $middle - 1;
            } else if ($arr[$middle] < $number) {
                // 查找数比参照点大,舍去左边
                $lower = $middle + 1;
            } else {
                // 查找数与参照点相等,则找到返回
                return $middle;
            }
        }
        // 未找到,返回-1
        return -1;
    }
  • 相关阅读:
    AOD.net
    C# Eval()和Bind()
    .Net使用微軟自帶的用戶驗證和登錄授權
    .Net面試4套
    .Net面試題
    MVC开发模式
    .Net自帶Ajax和GridView
    HTML系列(HTMl+CSS+JavaScript+Jquery)--un
    .Net母版页
    .NetDOM操作--un
  • 原文地址:https://www.cnblogs.com/weixinsb/p/13083602.html
Copyright © 2020-2023  润新知