数码资讯
PHP两点查找算法示例{递归和非递归方法}
本文介绍了PHP的两点查找算法: 二 这两点查找方法更容易理解,以数组为例: 第一个中间值的楼层数组((低+顶部) / 2), 其次,通过与所需数字比较,如果中间值较大,则第一个值被中间位置的下一个位置替换,第一步的操作继续进行。如果中间值很小,则尾部值被中间位置的位置所取代,并且第一步继续进行。
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
本文介绍了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程序设计有所帮助。
二
这两点查找方法更容易理解,以数组为例:
第一个中间值的楼层数组((低+顶部) / 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程序设计有所帮助。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。