php大数组查找算法,PHP简单的数组查找算法分享
PHP中對于數組的查找可以用順序查找或二分法查找。其中順序查找比較簡單,就是逐個比較查找。但缺點也較明顯,如果查找的元素恰巧在最后一個,循環的次數過多。
1.順序查找算法描述
在數組中逐個查找,確認是否有某個元素,存在時返回元素的位置信息。可以設置標志信息,初始值為false.找到直接輸出位置,并將標志設置為true。循環結束標志仍為false,則沒有找到。
代碼體現:$arr =[123,19,38,29,10,34];
function search($arr,$target){
// 參數:目標數組 目標元素
foreach ($arr as $key => $value) {
if($value == $target){
return $key.'
';
}
}
return false;
}
2.二分法查找算法描述
假設數組嚴格升序。如果目標元素大于中間的值,查找范圍向右側縮小一半。如果目標元素的值小于中間元素的值,查找范圍向左側縮小一半。
代碼體現:function half_search($arr,$target){
// 定義出初始的第一個,最后一個元素的下標范圍
$len = count($arr);
$left =0;
$right =$len -1;
// 循環查找
// 范圍不斷的移動 ,必須滿足一個條件
// 最左側元素的下標 小于等于右側元素的下標
while($left <= $right){
// 中間元素的下標
$middle = floor(($left + $right) /2);
// 目標元素與中間元素進行比較
if($target == $arr[$middle]){
return $middle;
}
// 如果目標元素小于中間元素
// 范圍向左縮小一半
if($target < $arr[$middle]){
$right =$middle-1 ;
}
// 如果目標元素大于中間元素
// 范圍向右縮小一半
if($target > $arr[$middle]){
$left = $middle + 1;
}
}
// 循環終止了
// 沒有找到
return false;
}
相關推薦:
總結
以上是生活随笔為你收集整理的php大数组查找算法,PHP简单的数组查找算法分享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 能连人脑能上火星 特斯拉手机Model
- 下一篇: 家中充电宝一夜忘拔 监控拍下爆燃画面:火