搜索
查看: 1971|回复: 0

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

[复制链接]

4770

主题

4771

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
14338
发表于 2018-2-11 11:46:49 | 显示全部楼层 |阅读模式

            本文实例讲述了PHP实现的二分查找算法。分享给大家供大家参考,具体如下:
二分查找法需要数组是一个有序的数组
假设我们的数组是一个递增的数组,首先我们需要找到数组的中间位置.
一。要知道中间位置就需要知道起始位置和结束位置,然后取出中间位置的值来和我们的值做对比。
二。如果中间值大于我们的给定值,说明我们的值在中间位置之前,此时需要再次二分,因为在中间之前,所以我们需要变的值是结束位置的值,此时结束位置的值应该是我们此时的中间位置。
三。反之,如果中间值小于我们给定的值,那么说明给定值在中间位置之后,此时需要再次将后一部分的值进行二分,因为在中间值之后,所以我们需要改变的值是开始位置的值,此时开始位置的值应该是我们此时的中间位置,直到我们找到指定值。
四。或者中间值等于最初的起始位置,或结束位置(此时说明给定值未找到),下面我们来用代码实现~
//循环实现
function getValue($num,$arr)
{
//查找数组的中间位置
$length=count($arr);
$start=0;
$end=$length;
$middle=floor(($start+$end)/2);
//循环判断
while($start>$end-1)
{
if($arr[middle]==$num)
{
return middle+1;
}elseif($arr[middle]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

长春门户网站

长春门户网是网民了解长春的网络窗口,同是提供长春地区百姓生活分类供求信息的门户网站,同时提供长春网站建设、长春网站设计,我们将逐步的完善网站分类信息资源;

长春门户网二维码

联系我们

  • 工作时间:早上8:00 - 晚上5:30
  • 投稿联系:13624467185(微信同号)
  • 反馈邮箱:5053050@QQ.com
  • 公司地址:吉林省长春市亚泰大街与自由大路交汇五环国际大厦1408室

QQ|小黑屋|手机版|Archiver|cc! ( 吉ICP备2021009740号-8 )

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表