试编写出将两个顺序存储的有序表A和B合成一个有序表C的算法。 A 1 4 6 7 9 B 2 3 8 11 C 1 2 3 4 6 7 8 9 11
时间: 2024-01-05 08:04:10 浏览: 70
A算法路径规划博文附件1.zip
5星 · 资源好评率100%
好的,以下是将两个顺序存储的有序表A和B合成一个有序表C的算法。
```c++
void merge(int A[], int B[], int C[], int lenA, int lenB) {
int i = 0, j = 0, k = 0; // i、j、k分别表示A、B、C的下标
while (i < lenA && j < lenB) {
if (A[i] <= B[j]) {
C[k++] = A[i++];
} else {
C[k++] = B[j++];
}
}
while (i < lenA) {
C[k++] = A[i++];
}
while (j < lenB) {
C[k++] = B[j++];
}
}
```
其中,A、B分别表示两个顺序存储的有序表,C表示合成后的有序表,lenA、lenB分别表示A、B的长度。算法的思路是利用归并排序的思想,将A、B中较小的元素依次放入C中,最后将剩余的元素直接放入C中。
阅读全文