用python写个二分查找
时间: 2023-10-27 22:02:09 浏览: 75
好的,下面是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
```
该函数接受两个参数:一个已排序的数组和一个目标值。如果目标值在数组中,则返回其索引;否则返回-1。
相关问题
python写个二分查找
好的,我们来写一个二分查找的 Python 代码。
首先,二分查找是一种在有序数组中查找某个元素的算法,它的时间复杂度是 O(log n),比较快。它的基本思路是,每次都将要查找的元素与数组的中间元素进行比较,如果查找的元素比中间元素大,那么就在数组的右半部分继续查找,如果查找的元素比中间元素小,那么就在数组的左半部分继续查找,直到找到要查找的元素为止。
这是 Python 代码:
```
def binary_search(arr, x):
# 定义左端点和右端点
left = 0
right = len(arr) - 1
# 当左端点小于等于右端点时,循环继续
while left <= right:
# 计算中间位置
mid = (left + right) // 2
# 如果中间元素等于要查找的元素,返回下标
if arr[mid] == x:
return mid
# 如果中间元素大于要查找的元素,更新右端点
elif arr[mid] > x:
right = mid - 1
# 如果中间元素小于要查找的元素,更新左端点
else:
left = mid + 1
# 如果没有找到,返回 -1
return -1
# 测试代码
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
x = 5
print(binary_search(
用python写一个二分查找
以下是Python中的二分查找实现:
```python
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。
函数使用while循环来查找元素。在每个迭代中,它计算数组的中间点,并将其与要查找的元素进行比较。如果中间元素小于要查找的元素,则在数组的右半部分继续搜索。如果中间元素大于要查找的元素,则在数组的左半部分继续搜索。如果中间元素等于要查找的元素,则已找到元素,返回其下标。
如果查找未成功,则返回-1。
阅读全文