码迷,mamicode.com
首页 > 编程语言 > 详细

PHP查找算法

时间:2016-04-02 12:03:05      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

<?php
/**
 *    查找
 **/
//顺序查找
function normal_search($arr, $val){
    $count = count($arr);
    if($count == 0){
        return -1;
    }
    for($i=0; $i<$count; $i++){
        if($arr[$i] == $val){
            return $i;
        }
    }
    return -1;
}

//二分查找-非递归
function bin_search($arr, $low, $high, $value){
    while($low<=$high){
        $mid = floor(($low+$high)/2);
        if($value == $arr[$mid]){
            return $mid;
        }elseif($value < $arr[$mid]){
            $high = $mid-1;
        }else{
            $low = $mid+1;
        }
    }
    return false;
}

//二分查找-递归
function bin_searchTwo($arr, $low, $high, $value){
    if($low>$high){
        return false;
    }
    $mid = floor(($low+$high)/2);
    if($value == $arr[$mid]){
        return $mid;
    }elseif($value < $arr[$mid]){
        return bin_searchTwo($arr, $low, $mid-1, $value);
    }else{
        return bin_searchTwo($arr, $mid+1, $high, $value);
    }
}
?>

 

PHP查找算法

标签:

原文地址:http://www.cnblogs.com/starryyy/p/5347093.html

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