倾情 发表于 2020-10-7 22:28

每周算法-PHP实现二分法查找算法

通知:目前由于业务繁忙,发现每日算法是不能够满足需求的,所以更改为每周一个算法学习吧,这样一周了解一个算法,把它吃透即可。暂定每周日。
发帖声明:菜鸟出学算法,和算法爱好者交流一下,有问题和建议都可以交流,互相学习呀。{:301_1000:}
【每周算法-每周算法-PHP实现二分法查找算法】
<?php// 测试数组
$testArray = array(1,2,33,24,15,16,7,8);
function find2($a,$findValue){
        /**
        * @name 二分法查找算法
        * @AuThor 倾情
        * @Param $a:传递的数组,$findVlaue:要查找的数值
        * @Return true找到,false没有找到
        */
        sort($a);
        $heigh = count((array)$a)-1;
        $low = 0;
        while ($heigh>=$low) {
                $mid = round(($heigh+$low)/2);
                echo "查找".$a[$mid].PHP_EOL;
                if($findValue>$a[$mid]){
                        $low = $mid+1;
                }elseif ($findValue<$a[$mid]) {
                        $heigh = $mid-1;
                }else{
                        return true;
                }
        }
        return false;
}
// 排序后的数组1 2 7 8 15 16 24 33
echo find2($testArray,33);

小航 发表于 2020-10-7 22:58

复杂的算法看不懂,简单的不想看

shubiao05 发表于 2020-10-7 23:15

不错,不错,这种方式既能学习算法,也能巩固php基础知识,还有一些应用上的细节,学习了

谢谢

冥月影 发表于 2020-10-7 23:55

学习算法,从开始到放弃,直接放弃,从我做起。

深水夜藏 发表于 2020-10-8 07:13

复杂的算法完全看不懂,还是先从简开始吧
页: [1]
查看完整版本: 每周算法-PHP实现二分法查找算法