『PHP学习笔记』系列六:二分法查找算法

算法原理:

  • 二分法查找适用于数据量较大时,但是数据需要先提前排好顺序。(必须是顺序存储的数据!)
  • 确定该数组中间元素位置:intval(0+(count($arr)-1))/2))
  • 如果中间位置的元素值,与要查找的值相等,则直接返回。
  • 如果中间位置的元素值,与要查找的值不相等,则需要确定新的查找区域,继续二分法查找。
  • 如果要查找的值,大于中间值,则查找区域为:从中间值下标+1,到数组末尾。
  • 如果要查找的值,小于中间值,则查找区域为:从0到中间值下标-1。
  • 依次类推…………

『PHP学习笔记』系列六:二分法查找算法_第1张图片

代码实现:

 $search) {
            //如果中间下标元素大于目标元素,则目标元素在数组前半部分,最小值下标变更为原中间下标-1
			$high = $mid - 1;
		}
	}
}
//待查数组为从小到大的顺序,如果为从大到小,则更改判断部分的比较运算符
$arr1 = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
$search1 = 7;
echo "元素'{$search1}'的数组下标为:" . order($search1, $arr1);
echo "
"; ?>

运行结果: 

你可能感兴趣的:(PHP,PHP,二分法查找算法)