编写函数,模拟二分法查找
时间: 2024-03-25 18:38:34 浏览: 63
要求演示二分法查找过程
好的,下面是一个 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。
这个函数的实现思路是,使用两个指针 `left` 和 `right` 分别指向数组的左右两端,然后计算中间位置 `mid`,并将目标元素与中间位置上的元素进行比较。如果相等,则返回中间位置;如果小于中间位置上的元素,则在左半部分继续查找;如果大于中间位置上的元素,则在右半部分继续查找。重复上述过程,直到找到目标元素或者搜索范围为空。
需要注意的是,这个函数的前提条件是数组已经排好序。如果数组没有排好序,则需要先对数组进行排序。此外,这个函数的时间复杂度是 O(log n),效率很高。
阅读全文