python实现折半查找并能打印对应的数据项,数据项中蕴含其它元素,如姓名,性别等,依旧可以打印出来
时间: 2024-12-22 08:24:41 浏览: 8
在Python中,折半查找,也称为二分搜索,通常用于已排序的列表或数组中。假设我们有一个包含姓名和性别元组的列表,比如按姓名字母顺序排列,我们可以创建一个函数来执行折半查找,并在找到指定名称时返回其对应的元组。下面是一个简单的例子:
```python
def binary_search(data, target_name):
low = 0
high = len(data) - 1
while low <= high:
mid = (low + high) // 2
search_item = data[mid]
if search_item[0] == target_name:
print(f"找到 {search_item[0]},姓名:{search_item[0]}, 性别:{search_item[1]}")
return search_item
elif search_item[0] < target_name:
low = mid + 1
else:
high = mid - 1
print("未找到指定姓名.")
return None
# 示例数据
data = [("Alice", "女"), ("Bob", "男"), ("Charlie", "男"), ("David", "女")]
target_name = "Alice"
binary_search(data, target_name)
```
在这个例子中,`binary_search`函数接受一个已经排好序的元组列表`data`和目标名字`target_name`作为输入。如果找到匹配的姓名,它将打印出姓名和性别;如果没有找到,则会显示未找到的信息。
阅读全文