python写一个二分查找
时间: 2023-03-08 16:08:25 浏览: 70
我可以给你一个Python实现的二分查找示例:def binary_search(alist, item):
first = 0
last = len(alist) - 1
found = False while first <= last and not found:
mid = (first + last) // 2
if alist[mid] == item:
found = True
else:
if item < alist[mid]:
last = mid - 1
else:
first = mid + 1
return found print(binary_search([1,2,3,4,5], 4)) # True
相关问题
python 写一个二分查找
当然可以!以下是一个使用 Python 编写的二分查找算法示例:
```python
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
guess = arr[mid]
if guess == target:
return mid
elif guess < target:
low = mid + 1
else:
high = mid - 1
return -1 # 如果找不到目标元素,则返回 -1
# 示例用法
arr = [1, 3, 5, 7, 9]
target = 3
result = binary_search(arr, target)
if result != -1:
print(f"目标元素 {target} 在数组中的索引位置为: {result}")
else:
print("目标元素未在数组中找到")
```
这是一个基本的二分查找算法。它首先设定一个搜索范围,然后在每一步中将搜索范围缩小一半,直到找到目标元素或确认目标元素不在数组中。在给定示例中,目标元素 `3` 在数组 `[1, 3, 5, 7, 9]` 中的索引位置为 `1`。
用Python写一个二分查找
二分查找是一种在有序列表中查找某一特定元素的搜索算法。下面是一个 Python 代码示例:
```
def binary_search(list, item):
low = 0
high = len(list) - 1
while low <= high:
mid = (low + high) // 2
guess = list[mid]
if guess == item:
return mid
elif guess > item:
high = mid - 1
else:
low = mid + 1
return None
my_list = [1, 3, 5, 7, 9]
print(binary_search(my_list, 3)) # Output: 1
print(binary_search(my_list, -1)) # Output: None
```
该代码定义了一个名为 `binary_search` 的函数,它接收一个有序列表和要查找的元素作为参数。函数使用一个循环来查找元素,每次将列表的中间元素与要查找的元素进行比较。如果找到了该元素,则返回它在列表中的索引。否则,如果中间元素大于要查找的元素,则在列表的左半部分继续查找;如果中间元素小于要查找的元素,则在列表的右半部分继续查找。如果列表中没有该元素,则返回 `None`。