python实现一个二分查找方法
时间: 2023-10-24 11:09:00 浏览: 40
可以使用以下代码实现一个二分查找方法:
```
def binary_search(arr, x):
low = 0
high = len(arr) - 1
mid = 0
while low <= high:
mid = (high + low) // 2
if arr[mid] < x:
low = mid + 1
elif arr[mid] > x:
high = mid - 1
else:
return mid
return -1
```
这个函数接收一个已排序的数组和需要搜索的元素。它会返回元素的下标,如果元素不在数组中则返回-1。
相关问题
用 Python 实现一个二分查找的函数
好的,以下是实现了二分查找功能的 Python 代码:
```python
def binary_search(arr, target):
"""
在一个已经排序的数组中使用二分查找算法查找特定目标值的位置。
:param arr: 已排序的数组
:param target: 要查找的目标值
:return: 如果找到返回目标值在数组中的索引位置,否则返回 -1。
"""
start, end = 0, len(arr) - 1
while start <= end:
mid = (start + end) // 2
if arr[mid] == target:
return mid
if arr[mid] < target:
start = mid + 1
else:
end = mid - 1
return -1
```
希望这个代码能够帮到您!
python 写一个二分查找
当然可以!以下是一个使用 Python 编写的二分查找算法示例:
```python
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
guess = arr[mid]
if guess == target:
return mid
elif guess < target:
low = mid + 1
else:
high = mid - 1
return -1 # 如果找不到目标元素,则返回 -1
# 示例用法
arr = [1, 3, 5, 7, 9]
target = 3
result = binary_search(arr, target)
if result != -1:
print(f"目标元素 {target} 在数组中的索引位置为: {result}")
else:
print("目标元素未在数组中找到")
```
这是一个基本的二分查找算法。它首先设定一个搜索范围,然后在每一步中将搜索范围缩小一半,直到找到目标元素或确认目标元素不在数组中。在给定示例中,目标元素 `3` 在数组 `[1, 3, 5, 7, 9]` 中的索引位置为 `1`。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)