PHP基于二分法实现数组查找成果示例【轮回与递归算法】
发布时间:2021-03-31 21:14:28 所属栏目:编程 来源:网络整理
导读:本篇章节讲授PHP基于二分法实现数组查找成果。分享给各人供各人参考,详细如下: 二分法。别离行使while轮回的要领和递归挪用的要领。 $high) {// 先判定竣事前提 return -1; } $i = intval(($high + $low)/2); if ($arr[$i] > $v){ return bsearch_r($v,$
本篇章节讲授PHP基于二分法实现数组查找成果。分享给各人供各人参考,详细如下: 二分法。别离行使while轮回的要领和递归挪用的要领。 $high) {// 先判定竣事前提 return -1; } $i = intval(($high + $low)/2); if ($arr[$i] > $v){ return bsearch_r($v,$i-1);// 递归 } else if ($arr[$i] < $v){ return bsearch_r($v,$i+1,$high); } else { return $i; } } echo bsearch_r(1,count($arr)-1);// 0 echo ''; echo bsearch_r(14,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措施计划有所辅佐。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读