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 相关文章推荐
PHP.MVC的模板标签系统(五)
Sep 05 PHP
PHP SQLite类
May 07 PHP
ThinkPHP3.1.3版本新特性概述
Jun 19 PHP
php中有关合并某一字段键值相同的数组合并的改进
Mar 10 PHP
PHP中$_SERVER使用说明
Jul 05 PHP
crontab无法执行php的解决方法
Jan 25 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
如何通过View::first使用Laravel Blade的动态模板详解
Sep 21 PHP
Yii2语言国际化自动配置详解
Aug 22 PHP
使用ucenter实现多站点同步登录的讲解
Mar 21 PHP
PHP利用递归函数实现无限级分类的方法
Mar 22 PHP
PHP Trait代码复用类与多继承实现方法详解
Jun 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中用header图片地址 简单隐藏图片源地址
2008/04/09 PHP
php上传文件的增强函数
2010/07/21 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
php判断访问IP的方法
2015/06/19 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
javascript下IE与FF兼容函数收集
2008/09/17 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
基于 Docker 开发 NodeJS 应用
2014/07/30 NodeJs
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
JavaScript调用客户端Java程序的方法
2015/07/27 Javascript
js倒计时简单实现方法
2015/12/17 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
javascript动态创建对象的属性详解
2018/11/07 Javascript
Vue路由守卫之路由独享守卫
2019/09/25 Javascript
JavaScript键盘事件响应顺序详解
2019/09/30 Javascript
[02:01]BBC DOTA2国际邀请赛每日综述:八强胜者组鏖战,中国队喜忧参半
2014/07/19 DOTA
[42:56]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
用Python编写一个国际象棋AI程序
2014/11/28 Python
Python多线程编程(四):使用Lock互斥锁
2015/04/05 Python
Python用Bottle轻量级框架进行Web开发
2016/06/08 Python
查看django版本的方法分享
2018/05/14 Python
在python中利用opencv简单做图片比对的方法
2019/01/24 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
html5的新玩法——语音搜索
2013/01/03 HTML / CSS
美国饼干礼物和美食甜点购买网站:Cheryl’s
2020/05/28 全球购物
Java servlet面试题
2012/03/04 面试题
食品安全工作方案
2014/05/07 职场文书
责任胜于能力演讲稿
2014/05/20 职场文书
个人总结与自我评价
2014/09/18 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
让世界充满爱观后感
2015/06/10 职场文书
深入理解go缓存库freecache的使用
2022/02/15 Golang