输入10个数按从小到大存放在lst列表中,,用二分查找法编写函数My_Search()实现对指定数字的查找,找到则输出该数在列表中的索引,找不到输出“未查到到该数”。
时间: 2024-10-13 21:17:55 浏览: 17
在Python中,你可以通过以下步骤来实现这个功能:
首先,创建一个名为`My_Search`的函数,接受两个参数,一个是存储了10个有序数的列表`lst`,另一个是要查找的目标数字`target`。二分查找法需要列表已经排序,所以我们假设输入的`lst`已经是升序排列。
```python
def My_Search(lst, target):
low = 0 # 初始化低指针
high = len(lst) - 1 # 初始化高指针
while low <= high: # 当低指针小于等于高指针时继续循环
mid = (low + high) // 2 # 计算中间位置的索引
if lst[mid] == target: # 如果中间元素就是目标,返回其索引
return mid
elif lst[mid] < target: # 如果中间元素小,调整低指针到中间偏右一位
low = mid + 1
else: # 如果中间元素大,调整高指针到中间偏左一位
high = mid - 1
# 找不到目标数时返回"未查到该数"
return "未查到该数"
# 示例
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
search_num = 6
result = My_Search(numbers, search_num)
print(f"目标数字 {search_num} 的索引是:{result}")
```
在这个例子中,如果`search_num`为6,函数会返回索引3,因为6在列表中的位置是第四个,索引从0开始计数。如果`search_num`不在列表中,它将返回"未查到该数"。
阅读全文