设有n个元素的集合a[0]~a[n-1]是有序的,设计算法从这n个元素中找出值为x的特定元素 代码
时间: 2024-10-15 21:06:31 浏览: 76
0020算法笔记——【动态规划】最优二叉搜索树问题 - liufeng_king的专栏 - 博客频道 - CSDN1
为了在一个已排序的数组`a[0]`到`a[n-1]`中查找指定值`x`,可以使用二分查找算法,它对于有序数组非常有效。以下是Python中的代码实现:
```python
def binary_search(a, n, x):
low = 0
high = n - 1
# 当low <= high时继续查找
while low <= high:
mid = (low + high) // 2
# 如果找到匹配的元素
if a[mid] == x:
return mid
# 如果x小于中间元素,缩小搜索范围到左半部分
elif a[mid] > x:
high = mid - 1
# 否则,缩小搜索范围到右半部分
else:
low = mid + 1
# 如果未找到元素,返回-1表示不存在
return -1
# 示例
sorted_array = [1, 2, 3, 4, 5, 6, 7, 8, 9]
target = 5
index = binary_search(sorted_array, len(sorted_array), target)
if index != -1:
print(f"元素 {target} 在索引 {index}")
else:
print(f"{target} 不在数组中")
阅读全文