实现将2个有序列表合并成1个有序列表,输入数据有多组,每组占四行
时间: 2024-09-29 11:02:02 浏览: 17
实现将两个有序列表合并成一个有序列表通常涉及迭代或递归两种策略。这里我们可以使用Python语言演示一种简单的插入排序方法,逐个比较并添加元素,因为对于小规模的有序列表,这种简单算法效率较高。
```python
def merge_sorted_lists(list1, list2):
merged_list = []
while list1 and list2: # 当两个列表都非空
if list1[0] <= list2[0]: # 如果list1的第一个元素更小
merged_list.append(list1.pop(0)) # 把它加到结果并移除
else:
merged_list.append(list2.pop(0)) # 否则,从list2取
# 将剩余未遍历完的列表追加到结果中,如果有
merged_list.extend(list1 if list1 else list2)
return merged_list
# 测试示例
list1 = [1, 3, 5]
list2 = [2, 4, 6]
merged = merge_sorted_lists(list1, list2)
print("合并后的有序列表:", merged)
# 接收用户输入,处理多组数据
while True:
input_data = input("请输入一组数据(以逗号分隔),按Enter结束:").split(',')
list1 = [int(num) for num in input_data[:len(input_data)//2]]
list2 = input_data[len(input_data)//2:]
print("合并后的列表:", merge_sorted_lists(list1, list2))
continue_prompt = input("是否继续合并其他列表?(y/n): ")
if continue_prompt.lower() != 'y':
break
```
在这个程序中,我们首先定义了一个`merge_sorted_lists`函数,然后通过循环和条件判断合并两个列表。之后,你可以按照提示输入多组数据,并不断调用这个函数直到用户选择停止。