合并两个有序的顺序表,La,Lb有序,从小到大合并到顺序表Lc的代码
时间: 2024-09-23 14:14:39 浏览: 39
如何将两个有序链表并为一个有序链表
合并两个有序的顺序表 `La` 和 `Lb` 到一个新的有序表 `Lc` 的过程可以通过双指针法来完成。这里是一个简单的 Python 代码示例:
```python
def merge_sorted_lists(La, Lb, Lc):
# 初始化两个指针,分别指向 La 和 Lb 的头部
i = j = 0
# 当两个列表还有元素时
while i < len(La) and j < len(Lb):
# 如果 La 中的元素较小,将其添加到 Lc 并移动 La 指针
if La[i] <= Lb[j]:
Lc.append(La[i])
i += 1
# 否则,将 Lb 的元素添加到 Lc 并移动 Lb 指针
else:
Lc.append(Lb[j])
j += 1
# 把剩余的元素(如果有)添加到 Lc,因为它们已经在原列表中排序
while i < len(La):
Lc.append(La[i])
i += 1
while j < len(Lb):
Lc.append(Lb[j])
j += 1
# 使用示例:
La = [1, 3, 5]
Lb = [2, 4, 6]
Lc = []
merge_sorted_lists(La, Lb, Lc)
print(Lc) # 输出: [1, 2, 3, 4, 5, 6]
```
这个函数通过比较两个列表当前元素的大小,将较小的元素依次加入结果列表 `Lc`,直到其中一个列表遍历完,然后直接把另一个列表剩下的元素加入 `Lc`。
阅读全文