数组查找方法
2015-08-07 09:38
232 查看
顺序查找法:
<?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,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);
?>
相关文章推荐
- mysql修改用户密码
- 学生成绩管理系统
- xclip
- 南邮 OJ 1860 C. 保研
- 解决opencv程序在linux环境中发布时的的依赖问题
- 详细剖析Linux进程调度时机
- Oracle层次查询
- Android 软键盘盖住输入框或者布局的解决办法
- (大数据工程师学习路径)第一步 Linux 基础入门----环境变量与文件查找
- 身份证号码校验系统
- JavaScript基础
- 【codevs】p1099 字串变换
- android中R.java文件消失
- MX4 Ubuntu系统下无法进行USB调试
- 生活篇
- POJ 3349 Snowflake Snow Snowflakes
- 构建自己的项目管理方案
- APP 商城功能
- Qt QThread 多线程使用
- JavaScript:改变HTML图像