牛骨文教育服务平台(让学习变的简单)
博文笔记

php二维数数组二分查找

创建时间:2012-09-25 投稿人: 浏览次数:142
/**
 * 二维数数组二分查找, 查找成功返回数组下标,失败返回-1
 * @param array $array 数组数据
 * @param string $key 查找的键
 * @param string $queryString 查询的字符串
 * @return int 
 */
function bsearch($array, $key, $queryString) {
	$low = 0;
	$high = count($array);
	
	while ($low <= $high) {
		$mid = floor(($low + $high) / 2);
		
		if (strcmp($array[$mid][$key], $queryString) === 0) {
			return $mid;
		} else if ($array[$mid][$key] > $queryString) {
			$high = $mid - 1;
		} else {
			$low = $mid + 1;
		}
	}

	return -1;
}

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。