码迷,mamicode.com
首页 > 其他好文 > 详细

查找之折半查找

时间:2014-12-09 21:15:28      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   sp   on   div   log   

前提:查询数组是一个有序数组

算法思想:取middle=(low+high)/2索引的元素值,比较arr[middle]与result, 若查找值result<arr[middle],对low~middle-1进行如上查找,若result>arr[middle],对middle+1~high进行如上查找,如此循环递归,一直到查得或low>high;

代码:

<?php
    $arr = array(3,12,44,45,54,232,234,289,322,323,456,554,2323,3432,3435,34454,43546);
    function binarySearch(&$arr, $low, $high, $result)
    {
        if($low>$high)
            return "No such digit!";
        $middle = round(($low+$high)/2);
        if($arr[$middle] == $result)
            return $middle;
        else if($result <$arr[$middle])
            return binarySearch($arr, $low, $middle-1, $result);
        else
            return binarySearch($arr, $middle+1, $high, $result);
    }

    echo binarySearch($arr, 0, count($arr)-1, 44);
?>

 

查找之折半查找

标签:style   blog   io   ar   color   sp   on   div   log   

原文地址:http://www.cnblogs.com/fantasy01/p/4154101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!