用python定义一个函数Binary_Search,实现二分查找,输入参数为列表search_list与待查找的数target,如果找到则输出其索引,未找到输出None。
时间: 2024-10-16 08:18:29 浏览: 21
Python二分查找详解
在Python中,你可以定义一个名为`binary_search`的函数,采用经典的二分查找算法来寻找目标值在排序列表中的位置。以下是一个简单的实现:
```python
def binary_search(search_list, target):
def partition(lst, low, high):
pivot = lst[high] # 将最后一个元素作为基准
i = low - 1 # 初始化较小元素的索引
for j in range(low, high):
if lst[j] <= pivot:
i += 1
lst[i], lst[j] = lst[j], lst[i] # 交换元素
lst[i + 1], lst[high] = lst[high], lst[i + 1] # 将基准放在正确的位置
return i + 1
low, high = 0, len(search_list) - 1
while low <= high:
mid = partition(search_list, low, high)
if search_list[mid] == target:
return mid
elif search_list[mid] < target:
low = mid + 1
else:
high = mid - 1
return None
# 示例
sorted_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
target = 5
result = binary_search(sorted_list, target)
if result is not None:
print(f"找到目标 {target},索引为 {result}")
else:
print(f"{target} 没有在列表中找到")
```
阅读全文