有两个有序数组a1和b1,将它们合并成数组c1,要求(也是有序数组。
时间: 2023-12-01 22:05:47 浏览: 81
可以采用归并排序的思想,将两个有序数组合并成一个有序数组。具体步骤如下:
1. 定义三个指针:i、j、k。分别指向数组a1、b1、c1的起始位置。
2. 比较a1[i]和b1[j]的大小,将较小的数放入c1[k]中,并将对应的指针i或j向后移动一位,同时k也向后移动一位。
3. 重复步骤2,直到其中一个数组的指针i或j到达数组末尾。
4. 将另一个数组中剩余的元素依次放入c1中。
代码实现如下:
```python
def merge(a1, b1):
c1 = [0] * (len(a1) + len(b1))
i, j, k = 0, 0, 0
while i < len(a1) and j < len(b1):
if a1[i] < b1[j]:
c1[k] = a1[i]
i += 1
else:
c1[k] = b1[j]
j += 1
k += 1
while i < len(a1):
c1[k] = a1[i]
i += 1
k += 1
while j < len(b1):
c1[k] = b1[j]
j += 1
k += 1
return c1
```
示例:
```python
a1 = [1, 3, 5, 7]
b1 = [2, 4, 6, 8]
c1 = merge(a1, b1)
print(c1) # [1, 2, 3, 4, 5, 6, 7, 8]
```
阅读全文