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 相关文章推荐
MYSQL 小技巧 -- LAST_INSERT_ID
Nov 24 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
May 17 PHP
使用php shell命令合并图片的代码
Jun 23 PHP
TMDPHP 模板引擎使用教程
Mar 13 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
Sep 05 PHP
php导出CSV抽象类实例
Sep 24 PHP
PHP中使用SimpleXML检查XML文件结构实例
Jan 07 PHP
php生成不重复随机数、数组的4种方法分享
Mar 30 PHP
PHP魔术方法的使用示例
Jun 23 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
Mar 16 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
Mar 02 PHP
php去除数组中为0的元素的实例分析
Nov 17 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下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
2016/10/08 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
2017/02/28 PHP
PHP自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
Swoole实现异步投递task任务案例详解
2019/04/02 PHP
简单JS代码压缩器
2006/10/12 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
js判断是否为ie的方法小结
2014/01/13 Javascript
更快的异步执行(setTimeout多浏览器)
2014/08/12 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
代码详解Vuejs响应式原理
2017/12/20 Javascript
Vue.directive()的用法和实例详解
2018/03/04 Javascript
微信小程序实现商城倒计时
2020/11/01 Javascript
vscode中eslint插件的配置(prettier配置无效)
2019/09/10 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
python正则表达式抓取成语网站
2013/11/20 Python
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
python在回调函数中获取返回值的方法
2019/02/22 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
Pyecharts地图显示不完成问题解决方案
2020/05/11 Python
Sunglasses Shop英国:欧洲领先的太阳镜在线供应商之一
2018/09/19 全球购物
遗嘱公证书标准样本
2014/04/08 职场文书
村庄绿化方案
2014/05/07 职场文书
商业计算机应用专业自荐书
2014/06/09 职场文书
七年级地理教学计划
2015/01/22 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
解决jupyter notebook启动后没有token的坑
2021/04/24 Python
什么是SOLID
2022/03/24 Javascript