编写一个Python程序,实现一个简单的二分查找算法,输入一个有序的整数数组和一个目标值,程序输出目标值在数组中的索引位置(若不存在则输出-1)。
时间: 2024-03-12 10:46:55 浏览: 61
好的,下面是 Python 代码实现:
```python
def binary_search(arr, target):
low, high = 0, len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1
```
上面的代码定义了一个 `binary_search` 函数,接收两个参数:一个有序的整数数组 `arr` 和一个目标值 `target`。函数返回目标值在数组中的索引位置(若不存在则输出-1)。
函数内部使用了二分查找算法,将数组分为左、中、右三部分,每次比较中间元素和目标值的大小关系,然后根据比较结果缩小查找范围,直到找到目标值或者查找范围为空。
你可以在代码中调用这个函数,实现对目标值的查找。
相关问题
编写一个Python程序,实现一个简单的二分查找算法,输入一个有序的整数数组和一个目标值,程序输出目标值在数组中的索引位置(若不存在则输出-1)
好的,以下是简单的Python程序实现二分查找算法:
```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`表示输入的有序整数数组,`target`则表示目标值。程序使用了经典的二分查找算法,首先设定左右指针,然后在每次循环中计算中间位置并比较目标值与中间位置的值的大小关系,根据大小关系更新左右指针的位置。如果最终找到了目标值,则返回其在数组中的索引位置,否则返回-1表示目标值不存在于数组中。
你可以将上述代码复制到Python的交互式环境或者.py文件中运行,测试一下程序的正确性。
4. 编写一个Python程序,实现一个简单的二分查找算法,输入一个有序的整数数组和一个目标值,程序输出目标值在数组中的索引位置(若不存在则输出-1)。
好的,以下是实现二分查找算法的Python程序:
```python
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1
```
该程序接受两个参数,一个有序的整数数组 `arr` 和一个目标值 `target`。它使用 `low` 和 `high` 两个指针来确定要搜索的数组的区间,然后在每个迭代中计算 `mid` 指针,并将其与目标值进行比较。如果 `arr[mid]` 等于目标值,则返回 `mid`,否则根据 `arr[mid]` 与 `target` 的大小关系缩小搜索区间。如果最终未找到目标值,则返回 -1。
你可以将该程序保存为 `binary_search.py` 文件,并在命令行中使用以下命令运行它:
```
python binary_search.py
```
然后按照提示输入有序整数数组和目标值,程序将输出目标值在数组中的索引位置。
阅读全文