6-4 合并两个有序数组
时间: 2023-12-18 09:19:37 浏览: 106
要将两个有序数组合并为一个有序数组,可以使用双指针的方法。假设两个数组分别为A和B,且长度分别为m和n。
首先,创建一个新的数组C,长度为m+n。然后,使用两个指针分别指向数组A和数组B的开头,比较两个指针指向的值,将较小的值放入数组C,并将相应的指针后移一位。重复这个过程,直到其中一个数组的所有元素都放入了数组C。
如果其中一个数组的元素已经全部放入了数组C,而另一个数组还有剩余元素,直接将剩余元素放入数组C即可。
下面是使用Python实现的代码示例:
```python
def mergeArrays(A, B):
# 获取两个数组的长度
m, n = len(A), len(B)
# 创建一个新的数组C
C = [0] * (m + n)
# 双指针
i, j, k = 0, 0, 0
# 比较两个指针指向的值,将较小的值放入数组C
while i < m and j < n:
if A[i] <= B[j]:
C[k] = A[i]
i += 1
else:
C[k] = B[j]
j += 1
k += 1
# 将剩余元素放入数组C
while i < m:
C[k] = A[i]
i += 1
k += 1
while j < n:
C[k] = B[j]
j += 1
k += 1
return C
```
使用该函数可以将两个有序数组合并为一个有序数组。例如:
```python
A = [1, 3, 5]
B = [2, 4, 6]
merged = mergeArrays(A, B)
print(merged) # 输出 [1, 2, 3, 4, 5, 6]
```
希望能帮到你!如果还有其他问题,请随时提问。
阅读全文