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 相关文章推荐
dedecms中常见问题修改方法总结
Mar 21 PHP
Php中文件下载功能实现超详细流程分析
Jun 13 PHP
PHP数据过滤的方法
Oct 30 PHP
php中文乱码怎么办如何让浏览器自动识别utf-8
Jan 15 PHP
使用YUI+Ant 实现JS CSS压缩
Sep 02 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
Oct 17 PHP
php获取、检查类名、函数名、方法名的函数方法
Jun 25 PHP
PHP实现图片自动清理的方法
Jul 08 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
Dec 17 PHP
php解决DOM乱码的方法示例代码
Nov 20 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
Jul 01 PHP
php命令行模式代码实例详解
Feb 26 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
Memcache 在PHP中的使用技巧
2010/02/08 PHP
PHP使用Mysqli类库实现完美分页效果的方法
2016/04/07 PHP
php文件上传、下载和删除示例
2020/08/28 PHP
利用PHP获取网站访客的所在地位置
2017/01/18 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
2017/05/20 PHP
用js实现下载远程文件并保存在本地的脚本
2008/05/06 Javascript
在html页面中包含共享页面的方法
2008/10/24 Javascript
Jquery Uploadify多文件上传带进度条且传递自己的参数
2013/08/28 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
2014/12/15 Javascript
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
Bootstrap每天必学之表单
2015/11/23 Javascript
Node.js实现文件上传
2016/07/05 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
JS Canvas定时器模拟动态加载动画
2016/09/17 Javascript
Bootstrap源码解读下拉菜单(4)
2016/12/23 Javascript
angular.fromJson与toJson方法用法示例
2017/05/17 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
Angular项目从新建、打包到nginx部署全过程记录
2017/12/09 Javascript
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
Vue使用高德地图搭建实时公交应用功能(地图 + 附近站点+线路详情 + 输入提示+换乘详情)
2018/05/16 Javascript
Vue基础学习之项目整合及优化
2019/06/02 Javascript
[49:08]Secret vs VP 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python 中文字符串的处理实现代码
2009/10/25 Python
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
python中利用matplotlib读取灰度图的例子
2019/12/07 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
2020/06/12 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
世界上第一个水枕头:Mediflow
2018/12/06 全球购物
存储过程的优点有哪些
2012/09/27 面试题
英语演讲稿3分钟
2014/04/29 职场文书
中学生教师节演讲稿
2014/09/03 职场文书
2015年简历自我评价范文
2015/03/11 职场文书
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript