练83.5 二分查找2
时间: 2023-08-27 21:13:28 浏览: 130
二分查找是一种常用的查找算法,用于在有序数组中查找特定元素的位置。下面是一个使用二分查找算法在一个有序数组中查找元素2的示例代码:
```python
def binary_search(arr, target):
left = 0
right = len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 2
result = binary_search(arr, target)
print("元素2的索引位置为:", result)
```
在这个示例中,我们定义了一个名为`binary_search`的函数,它接受一个有序数组`arr`和目标元素`target`作为参数。函数使用两个指针`left`和`right`来表示搜索范围的左右边界。
在每次迭代中,我们计算中间元素的索引`mid`,并与目标元素进行比较。如果中间元素等于目标元素,我们返回其索引。如果中间元素小于目标元素,则说明目标元素可能在中间元素的右侧,我们将左指针移动到`mid + 1`的位置。如果中间元素大于目标元素,则说明目标元素可能在中间元素的左侧,我们将右指针移动到`mid - 1`的位置。
如果循环结束时仍然没有找到目标元素,我们返回-1表示未找到。
对于给定的有序数组`arr=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]`,目标元素为2,运行上述代码会输出"元素2的索引位置为: 1",表示元素2在数组中的索引位置为1。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)