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

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

	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;
	}

猜你喜欢

转载自blog.csdn.net/weixin_43944691/article/details/107916242