python的二分法
时间: 2024-01-14 15:21:48 浏览: 74
以下是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 = [1, 3, 5, 7, 9]
target = 5
result = binary_search(arr, target)
if result != -1:
print("元素在索引", result)
else:
print("元素不在数组中")
```
相关问题
python 二分法
二分法是一种常用的搜索算法,用于在有序数组中快速查找目标元素。它的基本思想是将数组分成两部分,然后确定目标元素在哪一部分中,再在该部分中继续进行二分查找,直到找到目标元素或确定目标元素不存在。
以下是一个示例的 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 = [1, 3, 5, 7, 9, 11, 13]
target = 7
result = binary_search(arr, target)
if result != -1:
print("目标元素在索引位置 %d" % result)
else:
print("目标元素不存在")
```
在以上示例中,`binary_search` 函数接受一个有序数组 `arr` 和目标元素 `target` 作为参数,返回目标元素在数组中的索引位置。如果目标元素不存在,则返回 -1。
希望以上回答能对你有所帮助。如有更多问题,请继续提问。
python二分法查找
二分查找是一种在有序数组中查找特定元素的搜索算法。算法的工作原理是将数组分成两个部分:已排序的一部分和未排序的一部分,然后确定要查找的元素在哪个部分中,进而继续在该部分中进行查找,直到找到该元素或确定该元素不存在为止。
以下是 Python 实现二分查找的代码示例:
```python
def binary_search(arr, target):
left, right = 0, 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`。
阅读全文