本文介绍了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程序设计有所帮助。