欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP二分查找(折半查找!)

程序员文章站 2024-03-17 15:56:28
...

二分查找最重要是要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
详解:

	function binary_search($arr,$number)
	{
		if(!is_array($arr) || empty($arr)) {
			return -1;
		}
		$lenth = count($arr);
		$lower = 0;
		$heig = $lenth-1;
		while($lower < $heig) {
			$middle = intval(($lower + $hiig)/2); // 取出折半的数字 做对比
			if($arr[$middle] > $number) { // 当number小于折半的数的时候 让最小值加1
				$lower = $middle+1;
			}else if($arr[$middle] < $number) { // 反之 大于折半的数的时候 让最大值-1
				$heig = $middle-1;
			}else{
				return $middle; //查找到 就返回查找到的值
			}
		}
		return -1;
	}
相关标签: 其他