php 二分法

CODE:

<?php   
//search函数 其中$array为数组,$k为要找的值,$low为查找范围的最小键值,$high为查找范围的最大键值   
function search($array$k$low=0$high=0)       
{    
    if(
count($array)!=and $high == 0)                 //判断是否为第一次调用   
    
{   
        
$high count($array);   
    }   
    if(
$low <= $high)                                //如果还存在剩余的数组元素   
    
{    
        
$mid intval(($low+$high)/2);                  //取$low和$high的中间值   
        
if ($array[$mid] == $k)                         //如果找到则返回   
        
{    
            return 
$mid;    
        }   
        elseif (
$k $array[$mid])                       //如果没有找到,则继续查找   
        
{    
            return 
search($array$k$low$mid-1);    
        }   
        else   
        {    
            return 
search($array$k$mid+1$high);    
        }    
    }    
    return -
1;    
}    
$array = array(4,5,7,8,9,10);                           //测试search函数   
echo search($array8);                             //调用search函数并输出查找结果   
?>   
引用通告地址: http://dh.dolii.com/trackback.php?tbID=89&extra=340bff
标签: php
评论: 0 | 引用: 0 | 阅读: 73
发表评论
昵 称: 密 码:
网 址: 邮 箱:
验证码: 验证码图片 选 项:
头 像:
内 容: