7-2 合并有序数组
时间: 2024-10-21 22:11:58 浏览: 103
7-2 合并两个有序数组的问题通常指的是在一个编程面试中常见的算法题目,要求合并两个已经排好序的整数数组,形成一个新的有序数组。这是一个经典问题,可以使用迭代或递归的方式解决。
**迭代法**:
1. 创建一个新的数组,初始化长度为两输入数组之和。
2. 使用两个指针,分别指向每个输入数组的起始位置。
3. 比较当前指针所指元素,将较小的元素放入新数组,并将对应的指针向后移动一位,直到其中一个数组遍历完。
4. 将另一个数组剩余部分直接复制到新数组的剩余位置。
**递归法**:
- 如果一个数组为空,则直接返回另一个数组。
- 否则,比较两个数组的第一个元素,选择较小的那个放入结果数组,并递归地对剩下的部分继续操作,直到两个数组都遍历完。
**Python 示例(迭代法)**:
```python
def merge_sorted_arrays(arr1, arr2):
merged = []
i, j = 0, 0
while i < len(arr1) and j < len(arr2):
if arr1[i] <= arr2[j]:
merged.append(arr1[i])
i += 1
else:
merged.append(arr2[j])
j += 1
merged.extend(arr1[i:]) # 将未遍历完的数组添加至结果
merged.extend(arr2[j:])
return merged
```
阅读全文
相关推荐
















