首页  >  文章  >  后端开发  >  PHP有序表二分查找(折半查找)算法分享

PHP有序表二分查找(折半查找)算法分享

小云云
小云云原创
2018-02-11 09:06:191681浏览

本文主要和大家介绍了PHP有序表查找之二分查找(折半查找)算法,简单介绍了二分查找法的概念、原理并结合实例形式分析了php基于二分查找算法进行有序线性表查找的相关操作技巧,需要的朋友可以参考下,希望能帮助到大家。

简介:

二分查找技术,又称为折半查找。它的前提是线性表中的记录必须是关键码有序(通常从小到达有序),线性表必须采用顺序存储。

基本思想:

在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功;若给定值小于中间记录的关键字,则在中间记录的左半区继续查找;若给定值大于中间记录的关键字,则在中间记录的右半区继续查找。不断重复上述过程,直到查找成功,或所有查找区域无记录,查找失败为止。

代码:


 $arr[$middle]){
   $lower = $middle + 1;
  }else{
   return $middle;
  }
 }
 //返回-1表示查找失败
 return -1;
}
$arr = array(0,1,16,24,35,47,59,62,73,88,99);
$pos = binsearch($arr,62);
print($pos);
echo "
"; echo $i;

运行结果:


7
3

总结:

二叉查找的时间复杂度是 O(logn)。不过由于二叉查找的前提条件是需要有序表顺序存储(数组),如果该有序表需要频繁的执行插入或删除操作,维护有序的排序会带来不小的工作量。

相关推荐:

实例分析PHP实现的二分查找算法

php实现二分查找算法的方法

php 递归与非递归实现的二分查找实例代码


以上是PHP有序表二分查找(折半查找)算法分享的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn