PHP两点查找算法示例{递归和非递归方法}

PHP两点查找算法示例{递归和非递归方法}
本文介绍了PHP的两点查找算法:



这两点查找方法更容易理解,以数组为例:

第一个中间值的楼层数组((低+顶部) / 2),

其次,通过与所需数字比较,如果中间值较大,则第一个值被中间位置的下一个位置替换,第一步的操作继续进行。如果中间值很小,则尾部值被中间位置的位置所取代,并且第一步继续进行。

重复第二步直到找到目标号码。

例如,从1, 3, 9,23, 54找到数字23。

第一个位置是0,尾部位置是4,中间位置是2,值是9,小于23,然后第一位置被更新到2 + 1,即3,然后中间位置是(3 + 4) / 2=3,值为23,等于找到。
非递归算法:
我们的目标是找到一个目标 / /美元美元已经排序的数组arr
功能二元($ ARR,美元美元美元低,顶部,目标){
而(低$顶部){
因为PHP是取一个小数点,所以向下舍入,但也不能,将是整数数组。
美元=地板(($低+顶部)2);
echo $ 的中部;
If ($arr{$mid}==$target) {
返回的ARR { $中};
} elseif(ARR {中} <美元美元美元目标){
$ = $中+ 1;
其他{ }
$ = $中叶1;
}
}
返回- 1;
}
递归算法:
功能binaryrecursive(ARR美元,美元美元美元低,顶部,目标){
如果($ $ = top){
美元=地板(($低+顶部)2);
如果($ = $ $目标){
返回的ARR { $中};
} elseif(ARR {中} <美元美元美元目标){
返回binaryrecursive($ arr中+ 1美元美元美元,上方,目标);
其他{ }
返回binaryrecursive(ARR美元,美元低,2美元,美元的目标);
}
其他{ }
返回- 1;
}
}

更多有关PHP相关内容的感兴趣的读者可以查看这个主题:PHP站内搜索方法和技巧总结

希望本文能对PHP程序设计有所帮助。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部