给定两个升序数组A,B,将这两个数组合并为一个升序数组。数组大小不超过1000
时间: 2023-11-27 18:52:46 浏览: 85
可以使用归并排序的思想来合并两个有序数组。具体步骤如下:
1. 创建一个新的数组C,长度为A和B的长度之和。
2. 定义三个指针,分别指向数组A、B和C的末尾。
3. 比较A和B末尾的元素,将较大的元素复制到C的末尾,并将指针向前移动一位。
4. 重复步骤3直到A和B中的一个被复制完全。
5. 将剩余的元素从另一个数组复制到C中。
下面是Python实现代码:
```python
def merge_sorted_arrays(A, B):
len_a, len_b = len(A), len(B)
C = [0] * (len_a + len_b)
i, j, k = len_a - 1, len_b - 1, len_a + len_b - 1
while i >= 0 and j >= 0:
if A[i] > B[j]:
C[k] = A[i]
i -= 1
else:
C[k] = B[j]
j -= 1
k -= 1
while i >= 0:
C[k] = A[i]
i -= 1
k -= 1
while j >= 0:
C[k] = B[j]
j -= 1
k -= 1
return C
```
其中,变量i、j、k分别对应数组A、B、C的指针,从数组末尾开始向前扫描,以保证在C中的元素顺序是升序。第一个while循环用于将A和B中的元素依次复制到C中,第二个和第三个while循环则用于将剩余的元素复制到C中。
阅读全文