折半查询
来源:互联网 发布:淘宝店的分析 编辑:程序博客网 时间:2024/05/18 13:29
折半查询只适用于已经按照正序或者逆序排序的数组,字符串等;
算法:
先取数组的中间位置,无中间位置,则向下取整;
从中间进行折半,大小判断,进入前半段或者后半段;
再对前半段或者后半段进行同样的折半查询,
直到查询到匹配的字符,才停止(本例用break,如果置于函数中,return即可)
php实现的代码如下:
<?php$arr = array(1,2,3,4,5,6,7,8,9,10);//数组$key = 4;//要查询的关键字$low = 0;//开始位的标志$high = count($arr);//终止位的标志while($low <= $high){//查询开始结束的条件 $mid = floor(($low + $high)/2);//进行中间位置计算,向下取整 if($arr[$mid] == $key){//查询成功 echo $arr[$mid]; break;//结束本页执行,函数可用return }elseif($arr[$mid] > $key){ //查询前半段,把结束标志移到中间位置前一位 $high = $mid - 1; }else{ //查询后半段,把开始位置移到中间位置的后一位 $low = $mid + 1; }}?>
- 折半查询
- 折半查询
- 搜索算法(折半查询)
- 折半查询(二分搜寻法)
- PHP实现折半查询算法
- 折半查询与反转数组元素
- Java之折半查询(二分法)
- 折半
- 3. 数据结构进阶三静态查询之折半查询
- 文本二叉树折半查询及其截取值
- 为JS数组/Json/Xml添加折半查询方法
- Java 实现二分查找\折半查找(速度快的查询有序列表)
- 数组应用之最大值查询、排序算法、折半查找法、数组元素反转
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- phpBB
- Linq及Lamda表达式应用经验之 GroupBy 分组
- Linux细节 - Liunx防火墙/etc/sysconfig/iptables 详解
- zen card
- Linux细节 - Linux下账户管理操作
- 折半查询
- JSP 学习(1)
- SSH面试题
- 测试 代码的一些体会!说实话,前半部分能看懂,因为深有感触
- 芯片FXAS21002CQR1 (Freescale) -- 3轴 MEMS 陀螺仪
- 打造专业外观-九宫图
- [JS]获取表单的引用
- matlab 改变视点
- mvc改变路由