Python编写程序,实现用二分查找法在列表中查找指定的元素。
时间: 2024-05-04 20:15:41 浏览: 78
可以的,使用二分查找法在列表中查找指定元素的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编写程序,实现用二分查找法在列表中查找指定的元素。
好的,这是一个比较常见的问题,可以用以下代码实现:
```
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("元素在数组中的索引为", str(result))
else:
print("元素不在数组中")
```
希望能对您有帮助!
编写程序,实现用二分查找法在列表中查找指定的元素。
以下是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 # 如果找不到,返回-1
# 示例
arr = [2, 5, 8, 12, 16, 23, 38, 56, 72, 91]
target = 23
result = binary_search(arr, target)
if result != -1:
print(f"元素{target}在列表中的索引为{result}")
else:
print(f"元素{target}不在列表中")
```
输出:
```
元素23在列表中的索引为5
```
阅读全文