举一个二分查找的例子
时间: 2024-04-13 09:23:38 浏览: 3
二分查找是一种常用的查找算法,它适用于有序数组。下面是一个二分查找的例子:
假设有一个有序数组arr = [1, 3, 5, 7, 9, 11, 13, 15],我们要查找数字9在数组中的位置。
首先,我们需要定义两个指针,一个指向数组的起始位置(称为左指针),一个指向数组的结束位置(称为右指针)。初始时,左指针指向数组的第一个元素,右指针指向数组的最后一个元素。
然后,我们计算出中间元素的索引,即 (左指针 + 右指针) / 2。在这个例子中,中间元素的索引为 (0 + 7) / 2 = 3。
接下来,我们比较中间元素与目标数字9的大小关系。如果中间元素等于目标数字,则查找成功,返回中间元素的索引。如果中间元素大于目标数字,则说明目标数字在左半部分,我们将右指针移动到中间元素的前一个位置。如果中间元素小于目标数字,则说明目标数字在右半部分,我们将左指针移动到中间元素的后一个位置。
在这个例子中,中间元素为7,小于目标数字9,所以我们将左指针移动到中间元素的后一个位置,即左指针变为4。
然后,我们再次计算中间元素的索引,即 (4 + 7) / 2 = 5。
继续比较中间元素与目标数字的大小关系。在这个例子中,中间元素为11,大于目标数字9,所以我们将右指针移动到中间元素的前一个位置,即右指针变为4。
再次计算中间元素的索引,即 (4 + 4) / 2 = 4。
继续比较中间元素与目标数字的大小关系。在这个例子中,中间元素为9,等于目标数字9,所以查找成功,返回中间元素的索引4。