宝哥软件园

PHP中基于二分法的数组搜索函数示例[循环和递归算法]

编辑:宝哥软件园 来源:互联网 时间:2021-09-02

本文说明了PHP如何基于二分法找到数组。分享给大家参考,如下:

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

?Php//二分法的用法数组必须是有序的,升序或降序$arr=array(1,3,5,7,9,13);//递归调用(更容易理解函数bsearch _ r ($ v,$ arr,$ low,$ high){ if($ low $ high){//首先判断结束条件return-1;} $ I=int val(($ high $ low)/2);if($arr[$ I]$ v){ return b search _ r($ v,$ arr,$low,$ I-1);//递归} else if($ arr[$ I]$ v){ return bsarch _ r($ v,$ arr,$ I ^ 1,$ high);} else { return $ I;}}echo bsearch_r(1,$arr,0,count($ arr)-1);//0 echo ' HR/';echo bsearch_r(14,$arr,0,count($ arr)-1);///-1e CHO ' HR/';//while循环函数b arch($ v,$ arr){ $ low=0;$ high=count($ arr)-1;//用下标,注意减1。//使用while时注意防范无限循环,注意循环结束的判断。而($low=$high){//例如,$low=$high,这个等号必须存在。$ I=int val(($ 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 ' HR/';echo bsearch(14美元,arr);//-1运行结果:

更多对PHP相关内容感兴趣的读者可以查看本网站专题:《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》、《PHP数学运算技巧总结》、0103010

希望本文对PHP编程有所帮助。

更多资讯
游戏推荐
更多+