用python写个二分查找
时间: 2023-10-27 07:02:09 浏览: 77
好的,下面是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, 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]
target = 5
result = binary_search(arr, target)
if result != -1:
print(f"目标元素 {target} 在数组中的索引为 {result}")
else:
print("目标元素不在数组中")
```
以上代码定义了一个`binary_search`函数,接受一个已排序的数组`arr`和目标元素`target`作为参数。函数通过不断缩小搜索范围来查找目标元素的索引,如果找到则返回索引,否则返回-1。
在示例中,我们定义了一个数组`arr`并设定目标元素为5。然后调用`binary_search`函数进行查找,并根据返回结果输出相应的提示信息。
请注意,输入的数组必须是已排序的,否则二分查找算法将无法正常工作。
阅读全文