常用算法学习

二分查找方法

<?php 

$arr1 = [2, 5, 8, 10, 15, 18, 22, 24, 24, 28,33, 35, 50, 55, 56, 57, 60, 61, 62, 66, 70];
$search = 5;	//具体分析,可以将该数据修改为不同的值,比如:2, 5, 8,

$result = bin_search($arr1, $search, 0, count($arr1)-1 );
var_dump($result);

function bin_search($arr, $value, $start, $end)
{
	for($i = 1; $i > 0; $i++)
	{
		if($start > $end)
		{
			return false;
		}
		//找出$start和$end的中间位置:
		$mid = floor(   ($start + $end)/2    );
		$mid_value = $arr[$mid];
		if($mid_value == $value)
		{
			return true;
		}
		//中间值大于要找的目标值,则只要去中间值的左边找:
		elseif($mid_value > $value)
		{
			$start = $start;
			$end = $mid - 1;
		}
		//中间值小于于要找的目标值,则只要去中间值的右边找:
		elseif($mid_value < $value)
		{
			$start = $mid + 1;
			$end = $end;
		}
	}
}

上一篇:PHP if...else...elseif 语句


下一篇:5、第一章PHP 基础教程——PHP if...else...elseif 语句