用二分查找,排序n个数的数组A[1…n]写出python代码
时间: 2024-10-29 19:12:43 浏览: 7
Python如何实现的二分查找算法
二分查找是一种在有序数组中查找特定元素的搜索算法,它通过每次都比较中间元素与目标值,然后确定目标值是在数组的一半还是另一半继续查找。然而,如果要在Python中使用二分查找,通常需要先对数组进行排序,因为二分查找的前提是数组已经排好序。以下是排序并实现二分查找的一个示例:
```python
def binary_search(arr, target):
# 对数组进行排序
arr.sort()
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 # 如果没找到,返回-1表示目标不在数组中
# 示例
A = [5, 3, 8, 6, 4, 7, 9]
target = 6
index = binary_search(A, target)
if index != -1:
print(f"找到了,位置在 {index+1}")
else:
print("未找到")
```
阅读全文