写几个函数 输入十个职工的姓名和职工号 按职工号由小到大排序,姓名顺序也随之调整 要求输入一个职工号,用折半查找法找出该职工的姓名,从主函数输入要查找的职工号,输出该职工的姓名
时间: 2024-06-13 11:10:08 浏览: 93
采用折半查找和顺序查找来查找某个数
以下是三个函数,第一个函数用于输入十个职工的姓名和职工号,第二个函数用于按职工号由小到大排序,姓名顺序也随之调整,第三个函数用于折半查找法找出该职工的姓名并输出。
```python
def input_info():
info = []
for i in range(10):
name = input("请输入第{}个职工的姓名:".format(i+1))
id = input("请输入第{}个职工的职工号:".format(i+1))
info.append((name, id))
return info
def sort_info(info):
info.sort(key=lambda x: x[1])
return info
def search_info(info, id):
left = 0
right = len(info) - 1
while left <= right:
mid = (left + right) // 2
if info[mid][1] == id:
return info[mid][0]
elif info[mid][1] < id:
left = mid + 1
else:
right = mid - 1
return "未找到该职工信息"
```
使用以上三个函数可以实现输入十个职工的姓名和职工号,按职工号由小到大排序,姓名顺序也随之调整,以及用折半查找法找出该职工的姓名并输出。
```python
info = input_info()
sorted_info = sort_info(info)
print(sorted_info)
id = input("请输入要查找的职工号:")
name = search_info(sorted_info, id)
print(name)
```
阅读全文