可以采用归并排序的思想,即分别从L1和L2的第一个元素开始比较,将较小的元素插入到L3中,然后将指针向后移动一位,继续比较,直到其中一个表的元素全部插入到L3中。最后将另一个表剩余的元素依次插入到L3中即可。具体实现可以参考以下代码:

void merge(SeqList L1, SeqList L2, SeqList &L3) {
    int i = 0, j = 0, k = 0;
    while (i < L1.length && j < L2.length) {
        if (L1.data[i] <= L2.data[j]) {
            L3.data[k++] = L1.data[i++];
        } else {
            L3.data[k++] = L2.data[j++];
        }
    }
    while (i < L1.length) {
        L3.data[k++] = L1.data[i++];
    }
    while (j < L2.length) {
        L3.data[k++] = L2.data[j++];
    }
    L3.length = k;
}
小风禁止乱用 已知顺序表L1和L2都按从小到大排列那么我应该如何合并它们到L3并使L3从小到大排列?

原文地址: https://www.cveoy.top/t/topic/ZuY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录