编写算法,将两个非递减有序顺序表a和b合并成一个新的非递减有序顺序表c。
时间: 2023-04-19 15:02:32 浏览: 82
一算法可实现两个非递减的线性表的合并,采用链式存储结构,能够输出合并前和合并后链表的内容
算法步骤如下:
1. 初始化三个指针i、j、k,分别指向a、b、c的起始位置。
2. 比较a[i]和b[j]的大小,将较小的数放入c[k]中,并将指针i或j向后移动一位,指针k也向后移动一位。
3. 重复步骤2,直到其中一个顺序表的元素全部放入c中。
4. 将另一个顺序表剩余的元素依次放入c中。
5. 返回合并后的顺序表c。
代码实现如下:
```
def merge(a, b):
i, j, k = , ,
c = [] * (len(a) + len(b))
while i < len(a) and j < len(b):
if a[i] <= b[j]:
c[k] = a[i]
i += 1
else:
c[k] = b[j]
j += 1
k += 1
while i < len(a):
c[k] = a[i]
i += 1
k += 1
while j < len(b):
c[k] = b[j]
j += 1
k += 1
return c
```
阅读全文