编写一个C++算法函数将两个有序的线性表合并成一个有序的线性表
时间: 2023-09-13 08:07:37 浏览: 121
Cpp-Leetcode题解之第88题合并两个有序数组.zip
可以使用归并排序的思想,将两个有序的线性表合并成一个有序的线性表。具体算法实现如下:
```c
void merge(int a[], int b[], int c[], int m, int n) {
int i = 0, j = 0, k = 0;
while (i < m && j < n) {
if (a[i] < b[j]) {
c[k++] = a[i++];
} else {
c[k++] = b[j++];
}
}
while (i < m) {
c[k++] = a[i++];
}
while (j < n) {
c[k++] = b[j++];
}
}
```
其中,a 和 b 分别表示两个有序的线性表,m 和 n 分别表示它们的长度,c 表示合并后的有序线性表。算法的基本思想是比较 a 和 b 中的元素,将较小的元素插入到 c 中,直到其中一个线性表为空。然后将剩余的元素插入到 c 中即可。
阅读全文