PHP数据结构(1) 二分查找
来源:互联网 发布:java intellij i18n 编辑:程序博客网 时间:2024/06/14 10:00
二分查找的基本思路是将一个有序数组取中间的那个值和所查找的值进行大小比较,当所查找的值大于数组的中间值时,即说明该有序数组中间值前的所有值都小于该查找的值,所以可以将该数组中间值前的所有值排除,再从该数组中间值到该数组末尾的值中继续查找所需值,其代码实现如下:
注:二分查找只适用于已经排好序的数组
<?php
//二分查找
function bin_search($array,$search){
$low=0;
$height=count($array)-1;//获取数组长度
while($low<=$height){
$mid=floor(($low+$height)/2);//获取中间数,强制转换为floor类型,防止出错
if($array[$mid]==$search){
return $mid+1;//返回已找到的序号
}else if($array[$mid]<$search){
//当中间值小于所查值时,则$mid左边的值都小于$search,此时要将$mid赋值给$low
$low=$mid+1;
}else if($array[$mid]>$search){
//此时说明中间值大于所查值,则$mid右边的所有值都大于$search,此时要将$mid赋值给$height
$height=$mid-1;
}
return "查找失败";//查找失败,数组中不存在该值
}
}
$arr=array(1,4,6,33,75,88,89,93);
echo bin_search($arr,33);
echo bin_search($arr,66);
?>
0 0
- PHP数据结构(1) 二分查找
- PHP数据结构——二分查找与顺序查找
- 转贴:数据结构:二分查找
- 数据结构-二分查找算法
- [数据结构]二分查找
- 数据结构:二分查找算法
- 数据结构—二分查找
- 【Java数据结构】二分查找
- 数据结构--向量--二分查找
- 数据结构之二分查找
- 数据结构-二分查找
- 数据结构之二分查找
- 数据结构--杂记-二分查找
- 数据结构(二分查找)
- 数据结构--顺序查找、二分查找
- 数据结构-查找-二分查找(1)有序表复杂度(lg(n))
- 【数据结构】查找算法:二分查找、顺序查找
- PHP 顺序查找、二分查找
- Java无需解压直接读取Zip文件和文件内容
- linux socket 编程之 —— select函数详解
- iOS5s真机调试出现上下黑框~
- 微信分销
- windows操作系统的java环境变量配置
- PHP数据结构(1) 二分查找
- Ajax与ashx异步请求的简单案例
- 将JavaScript对象property name变成小写
- Android:interpolator用法
- 32位程序移植到64位需要考虑的问题
- USACO3.3.2 Shopping Offers (shopping)
- leetcode Remove Duplicates from Sorted List
- android 图片缓存 异步加载 简要介绍
- USACO3.3.3 Camelot (camelot)