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

【算法】如何在有序的数组中找到一个数的位置(递归)

程序员文章站 2022-03-01 17:46:50
...
function search($array,$value){
	$length = count($array);
	$left = 0;
	$right = $length - 1;
	return binary_search($array,$value,$left,$right);
}
function binary_search(&$array,&$value,$left,$right){
	$mid = intval(($right + $left) / 2);
	if($left > $right){
		return -1;
	}else if($array[$mid] == $value){
		return $mid;
	}else if($array[$mid] < $value){
		$left = $mid + 1;
		return binary_search($array,$value,$left,$right);
	}else if($array[$mid] > $value){
		$right = $mid;
		return binary_search($array,$value,$left,$right);
	}
}
$arr = [1,2,3,4,5,6,7,8,9,10];
echo search($arr,5);   //  4