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对象类型判断
Aug 27 PHP
解析PHP对现有搜索引擎的调用
Jun 25 PHP
php使用fopen创建utf8编码文件的方法
Oct 31 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
Dec 25 PHP
PHP中使用xmlreader读取xml数据示例
Dec 29 PHP
php操作memcache缓存方法分享
Jun 03 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
Feb 15 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
Jul 10 PHP
PHP7下协程的实现方法详解
Dec 17 PHP
PHP实现cookie跨域session共享的方法分析
Aug 23 PHP
Laravel框架验证码类用法实例分析
Sep 11 PHP
PHP正则表达式函数preg_replace用法实例分析
Jun 04 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
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
2007/04/12 PHP
php str_pad 函数用法简介
2009/07/11 PHP
php 来访国内外IP判断代码并实现页面跳转
2009/12/18 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
2016/02/26 PHP
PHP实现带进度条的Ajax文件上传功能示例
2019/07/02 PHP
JSON 教程 json入门学习笔记
2020/09/22 Javascript
js创建对象的几种常用方式小结(推荐)
2010/10/24 Javascript
json2.js的初步学习与了解
2011/10/06 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
详解vue-cli开发环境跨域问题解决方案
2017/06/06 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
hammer.js实现图片手势放大效果
2017/08/29 Javascript
jQuery获取复选框选中的当前行的某个字段的值
2017/09/15 jQuery
微信小程序switch组件使用详解
2018/01/31 Javascript
vue中uni-app 实现小程序登录注册功能
2019/10/12 Javascript
async/await让异步操作同步执行的方法详解
2019/11/01 Javascript
使用IronPython把Python脚本集成到.NET程序中的教程
2015/03/31 Python
Python中用format函数格式化字符串的用法
2015/04/08 Python
在Python中使用next()方法操作文件的教程
2015/05/24 Python
Python通过90行代码搭建一个音乐搜索工具
2015/07/29 Python
浅谈pycharm下找不到sqlalchemy的问题
2018/12/03 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
资产评估专业大学生求职信
2013/09/29 职场文书
《晏子使楚》教学反思
2014/02/08 职场文书
村委会贫困证明范文
2014/09/21 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
重温入党誓词主持词
2015/06/29 职场文书
公司借款担保书
2015/09/22 职场文书
python单元测试之pytest的使用
2021/06/07 Python
postgres之jsonb属性的使用操作
2021/06/23 PostgreSQL
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS
MySQL派生表联表查询实战过程
2022/03/20 MySQL