实现2个有序数组的合并
时间: 2024-09-10 15:07:45 浏览: 44
C++实现两个有序数组的合并
5星 · 资源好评率100%
合并两个已排序的数组是一个常见的算法问题,可以使用双指针法高效地解决。以下是步骤:
1. 创建一个新的空数组,用于存放合并后的结果。
2. 初始化两个指针,一个指向第一个数组的起始位置(i = 0),另一个指向第二个数组的起始位置(j = 0)。
3. 比较两个指针所指的元素,将较小的那个元素添加到新数组,并将对应的指针向后移动一位。如果其中一个数组已遍历完,直接将另一个数组剩余部分复制到新数组。
4. 重复步骤3,直到两个数组都被遍历完。
伪代码示例(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
```
阅读全文