python 实现用二分查找法在列表中查找指定的元素。
时间: 2024-05-13 20:13:36 浏览: 10
可以的,这是一个常见的编程问题。二分查找法可以在有序列表中快速查找元素。下面是一个简单的 Python 实现:
```python
def binary_search(arr, x):
low, high = 0, len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] < x:
low = mid + 1
elif arr[mid] > x:
high = mid - 1
else:
return mid
return -1
```
这个函数接受一个有序列表和一个要查找的元素作为参数。它使用两个指针 low 和 high 来表示当前查找的范围。在每次循环中,它计算中间索引 mid,比较 arr[mid] 和目标值 x 的大小关系,并根据比较结果更新指针。如果找到了目标值,就返回它的索引。如果查找结束仍然没有找到,就返回 -1。
相关问题
Python编写程序,实现用二分查找法在列表中查找指定的元素。
可以的,使用二分查找法在列表中查找指定元素的Python代码如下:
```python
def binary_search(arr, low, high, x):
if high >= low:
mid = (high + low) // 2
if arr[mid] == x:
return mid
elif arr[mid] > x:
return binary_search(arr, low, mid - 1, x)
else:
return binary_search(arr, mid + 1, high, x)
else:
return -1
arr = [2, 3, 4, 10, 40]
x = 10
result = binary_search(arr, 0, len(arr) - 1, x)
if result != -1:
print("元素在索引 %d" % result)
else:
print("元素不在数组中")
```
希望对您有帮助!
写一个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
arr = [2, 3, 4, 10, 40]
x = 10
result = binary_search(arr, x)
if result != -1:
print("元素在索引 %d" % result)
else:
print("元素不在列表中")
```
这个程序将返回指定元素在列表中的索引,如果指定元素不在列表中,则返回-1。注意,这个程序假设列表已经按升序排列。