已知整型数组a和 的长度分别为M和N(M、N已知),且均已升序排序,编写程序将这两个有序数组合并成一个新的升序数组。 (提示:键盘输入数组元素时,已按升序顺序键入,无须再排序)
时间: 2024-12-04 22:24:07 浏览: 24
合并两个升序排序的整数数组可以使用双指针技巧。创建一个新数组c,初始化长度为M+N。设两个指针i和j分别指向a和b的起始位置。
以下是Python语言的一个简单示例:
```python
def merge_arrays(a, b):
i = 0
j = 0
c = [] # 新数组
while i < len(a) and j < len(b): # 当两个数组还有未遍历元素
if a[i] <= b[j]: # 如果a的当前元素小于等于b的当前元素
c.append(a[i]) # 把a的当前元素添加到新数组
i += 1 # 移动a的指针
else: # 否则
c.append(b[j]) # 把b的当前元素添加到新数组
j += 1 # 移动b的指针
# 如果a还有剩余元素,直接添加
while i < len(a):
c.append(a[i])
i += 1
# 如果b还有剩余元素,也添加
while j < len(b):
c.append(b[j])
j += 1
return c
# 示例
a = [1, 3, 5]
b = [2, 4, 6]
merged_array = merge_arrays(a, b)
print(merged_array) # 输出:[1, 2, 3, 4, 5, 6]
```
阅读全文