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