数组查找方法
顺序查找法:
<?php
$arr=array(25,67,76,34,28);
//定义一种在数组中查找某元素的方法
function search(&$arr,$findVal){
$flag=false;
for($i=0;$i<count($arr);$i++){
if($findVal==$arr[$i]){
echo "找到了,下标为$i";
$flag=true;
}
}
if($flag!=true){
echo "查询不到";
}
}
search($arr,76);
?>
二分查找法(该方法要求数组中元素是按照顺序排列的): <?php $arr=array(25,28,30,46,50); //leftIndex数组最左边的下标,rightIndex数组最右边的下标 function search(&$arr,$findVal,$leftIndex,$rightIndex){ if($leftIndex>$rightIndex){ echo "找不到该数"; return;//return语句结束该方法 } $middleIndex=round(($leftIndex+$rightIndex)/2);//取中间下标,round四舍五入取整数 if($findVal>$arr[$middleIndex]){ search(&$arr,$findVal,$middleIndex+1,$rightIndex); }else if($findVal<$arr[$middleIndex]){ search(&$arr,$findVal,$leftIndex,$middleIndex-1); }else{ echo "找到了,下标为$middleIndex"; } } search($arr,46,0,4); ?>
二分查找法(该方法要求数组中元素是按照顺序排列的): <?php $arr=array(25,28,30,46,50); //leftIndex数组最左边的下标,rightIndex数组最右边的下标 function search(&$arr,$findVal,$leftIndex,$rightIndex){ if($leftIndex>$rightIndex){ echo "找不到该数"; return;//return语句结束该方法 } $middleIndex=round(($leftIndex+$rightIndex)/2);//取中间下标,round四舍五入取整数 if($findVal>$arr[$middleIndex]){ search(&$arr,$findVal,$middleIndex+1,$rightIndex); }else if($findVal<$arr[$middleIndex]){ search(&$arr,$findVal,$leftIndex,$middleIndex-1); }else{ echo "找到了,下标为$middleIndex"; } } search($arr,46,0,4); ?>
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 操作系统——文件系统
- 下一篇: PDO与原生方式对数据库连接插入操作效率对比