PHP基于二分法如何实现数组查找功能-创新互联

这篇文章给大家分享的是有关PHP基于二分法如何实现数组查找功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

10年积累的网站设计制作、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有安丘免费网站建设让你可以放心的选择与我们合作。

具体如下:

二分法。分别使用while循环的方法和递归调用的方法。

 $high) {// 先判断结束条件
    return -1;
  }
  $i = intval(($high + $low)/2);
  if ($arr[$i] > $v){
    return bsearch_r($v, $arr, $low, $i-1);// 递归
  } else if ($arr[$i] < $v){
    return bsearch_r($v, $arr, $i+1, $high);
  } else {
    return $i;
  }
}
echo bsearch_r(1, $arr, 0, count($arr)-1);// 0
echo '
'; echo bsearch_r(14, $arr, 0, count($arr)-1);// -1 echo '
'; // while循环 function bsearch($v, $arr){   $low = 0;   $high = count($arr)-1;// 使用下标,注意减去1   // 注意凡是使用到while的时候,一定要防备无限循环的时候,注意终止循环的判断。   while($low <= $high){// 比如$low<=$high,这个等于号必须有。     $i = intval(($high + $low)/2);     if ($arr[$i] > $v){       $high = $i-1;     } else if ($arr[$i] < $v){       $low = $i+1;     } else {       return $i;     }   }   return -1;// 找不到的时候返回-1 } echo bsearch(13, $arr);// 5 echo '
'; echo bsearch(14, $arr);// -1

运行结果:

PHP基于二分法如何实现数组查找功能

感谢各位的阅读!关于“PHP基于二分法如何实现数组查找功能”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


标题名称:PHP基于二分法如何实现数组查找功能-创新互联
本文网址:http://pwwzsj.com/article/dgcipe.html