编程:给出一个有序的整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组
时间: 2024-05-04 14:15:28 浏览: 82
将两个有序数组,合并成另一个有序的数组,升序
:可以使用双指针的方法,从后向前遍历 A 和 B 数组,将较大的元素依次放进数组 A 的最后面,直到将数组 B 全部合并到数组 A 中为止。具体代码如下:
```python
def merge(A, m, B, n):
p1, p2, p = m - 1, n - 1, m + n - 1 # 双指针,p1 指向数组 A 的末尾,p2 指向数组 B 的末尾,p 指向合并后的数组 A 的末尾
while p1 >= 0 and p2 >= 0: # 当 A 数组和 B 数组都有元素时,比较两个指针指向的元素大小
if A[p1] > B[p2]:
A[p] = A[p1]
p1 -= 1
else:
A[p] = B[p2]
p2 -= 1
p -= 1 # 移动指针 p,指向下一次合并后的位置
if p2 >= 0: # 如果 B 数组还有剩余元素,将其直接拷贝到 A 数组
A[:p2 + 1] = B[:p2 + 1]
```
其中,m 和 n 分别为 A 数组和 B 数组的长度。
阅读全文