数据结构与算法合并两个顺序表
时间: 2024-09-21 07:08:47 浏览: 34
数据结构与算法合并两个顺序表通常是指将两个已排序的线性列表(顺序表)整合成一个新的有序列表。这可以分为两种常见的情况:
1. **直接合并**:
- 如果两个列表都有足够的空间容纳较大的那个,你可以从头开始比较它们的元素,将较小的那个元素添加到新列表中,然后移动指向当前元素的指针,直到遍历完其中一个列表。接着,将另一个列表剩余的部分复制到新列表的剩余部分。
2. **递归合并**:
- 使用递归的方式,每次比较两个列表的首元素,将较小的放入结果数组,并更新相应的指针。如果某一方列表为空,就把另一个列表的所有元素追加到结果列表。
以下是简单的Python示例,假设我们有两个已排序的列表`list1`和`list2`:
```python
def merge_sorted_lists(list1, list2):
merged_list = []
while list1 and list2:
if list1[0] <= list2[0]:
merged_list.append(list1.pop(0))
else:
merged_list.append(list2.pop(0))
# 将剩余未遍历的列表添加到结果中
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) # 输出:[1, 2, 3, 4, 5, 6]
```
阅读全文