php数据结构与算法(PHP描述) 查找与二分法查找


Posted in PHP onJune 21, 2012
<?php 
/** 
* 查找 
* 
**/ 
// 顺序查找 
function normal_search($arrData,$val) { 
$len = count($arrData); 
if($len == 0) return -1; 
for($i = 0;$i < $len; $i++ ) { 
echo "find No.",$i + 1," value = ",$arrData[$i]," is = ",$val,"? <br/>"; 
// 找到了 
if($arrData[$i] == $val) return $i; 
} 
return -1; 
} // 测试顺序查找 
$arrData = array(4,51,6,73,2,5,9,33,50,3,4,6,1,4,67); 
echo normal_search($arrData,6),"<br/>"; 
echo normal_search($arrData,66),"<br/>"; 
// 二分法查找(针对有序的列进行查找) 
function binary_search($arrData,$val) { 
$len = count($arrData); 
if($len == 0) return -1; 
$start = 0; 
$end = $len - 1; 
while($start <= $end) { 
$middle = intval(($start + $end)/2); 
echo "start = ",$start," end = ",$end," middle = ",$middle,"<br/>"; 
if($arrData[$middle] == $val) { 
return $middle; 
} elseif ($arrData[$middle] > $val) { 
$end = $middle - 1 ; 
} elseif ($arrData[$middle] < $val) { 
$start = $middle + 1; 
} 
} 
return -1; 
} 
// 测试一下二分法查找 
$arrData = array(1,2,3,4,5,7,8,9,11,23,56,100,104,578,1000); 
echo binary_search($arrData,578),"<br/>"; 
echo binary_search($arrData,66),"<br/>";
PHP 相关文章推荐
用session做客户验证时的注意事项
Oct 09 PHP
php下判断数组中是否存在相同的值array_unique
Mar 25 PHP
php数据库连接时容易出错的特殊符号问题
Sep 01 PHP
php array_map()数组函数使用说明
Jul 12 PHP
php daddslashes()和 saddslashes()有哪些区别分析
Oct 26 PHP
php中用加号与用array_merge合并数组的区别深入分析
Jun 03 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
Apr 01 PHP
微信支付PHP SDK ―― 公众号支付代码详解
Sep 13 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
Jun 03 PHP
Smarty模板变量与调节器实例详解
Jul 20 PHP
PHP命名空间定义与用法实例分析
Aug 14 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
Sep 13 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
Jun 21 #PHP
php数据结构与算法(PHP描述) 快速排序 quick sort
Jun 21 #PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
Jun 17 #PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
Jun 17 #PHP
php后退一页表单内容保存实现方法
Jun 17 #PHP
php中使用接口实现工厂设计模式的代码
Jun 17 #PHP
php中jQuery插件autocomplate的简单使用笔记
Jun 14 #PHP
You might like
用PHP实现的生成静态HTML速度快类库
2007/03/31 PHP
php 日期和时间的处理-郑阿奇(续)
2011/07/04 PHP
input file获得文件根目录简单实现
2013/04/26 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
2014/12/05 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
2016/09/14 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
瀑布流布局并自动加载实现代码
2013/03/12 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
在父页面调用子页面的JS方法
2013/09/29 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
2013/11/29 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
JS实现随机乱撞彩色圆球特效的方法
2015/05/05 Javascript
微信小程序实现图片预览功能
2018/01/31 Javascript
详解用Node.js写一个简单的命令行工具
2018/03/01 Javascript
详解vue 数据传递的方法
2018/04/19 Javascript
vue element项目引入icon图标的方法
2018/06/06 Javascript
vue quill editor 使用富文本添加上传音频功能
2020/01/14 Javascript
详解js中的原型,原型对象,原型链
2020/07/16 Javascript
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
python和shell实现的校验IP地址合法性脚本分享
2014/10/23 Python
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
Python if语句知识点用法总结
2018/06/10 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
django实现将后台model对象转换成json对象并传递给前端jquery
2020/03/16 Python
python中判断文件结束符的具体方法
2020/08/04 Python
pycharm配置安装autopep8自动规范代码的实现
2021/03/02 Python
监理资料员岗位职责
2014/01/03 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
2015年度酒店客房部工作总结
2015/05/25 职场文书
2015年校本培训工作总结
2015/07/24 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js
Jedis操作Redis实现模拟验证码发送功能
2021/09/25 Redis