已知整型数组a和b的长度分别为 M 和N(M、N 已知),且均已升序排序,编写程序格这两个有序数组合并成一个新的升序数组。
时间: 2024-12-06 17:26:00 浏览: 56
要将两个已排序的整型数组 `a` 和 `b` 合并成一个新的升序数组,可以使用双指针法,分别从两个数组的开头开始比较元素。以下是Python的一个示例:
```python
def merge_sorted_arrays(a, b):
# 初始化空结果数组c
result = []
# 指针i指向a的第一个元素,j指向b的第一个元素
i = 0
j = 0
# 当任一数组还有剩余元素时
while i < len(a) and j < len(b):
# 如果a的当前元素小于b的当前元素,则添加到结果,并移动a指针
if a[i] <= b[j]:
result.append(a[i])
i += 1
# 否则,添加b的当前元素到结果,并移动b指针
else:
result.append(b[j])
j += 1
# 将剩余的数组元素添加到结果(如果有的话)
result.extend(a[i:])
result.extend(b[j:])
return result
# 示例
M = 5 # a数组长度
N = 3 # b数组长度
a = [1, 3, 5, 7, 9]
b = [2, 4, 6]
merged_array = merge_sorted_arrays(a, b)
print(merged_array) # 输出: [1, 2, 3, 4, 5, 6, 7, 9]
```
阅读全文
相关推荐















