归并的含义是将两个或两个以上的有序序列归并为一个有序序列的过程。
归并排序的主要思想是:将若干有序序列逐步归并,最终归并为一个有序序列。
其中最常见的是二路归并。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Er0Ne8Xn-1597025336790)(https://upload-images.jianshu.io/upload_images/7186975-30216af16cb07a0a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fB4tcuMt-1597025336813)(https://upload-images.jianshu.io/upload_images/7186975-44a6d4c45d61fa57.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
顺序表归并代码
参数列表 定义三个数组 m n 分别是传入数组的长度
i , j 就是演示图片的 i 和 j
k是始终指示出 结果线性表的尾部位置
第一个while循环结束时 一定会有一个数组被归并完
后面的两个while循环 只会执行其中一个
含有头结点的单链表归并
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8CtkKXrx-1597025336846)(https://upload-images.jianshu.io/upload_images/7186975-5b637fd3373bddae.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
C = A;
C->next =NULL;
从待归并列表中 取下一个头结点 来作为结果链表的头结点
第二种 归并出来一种 逆序的链表
类似于头插法 得到逆序链表 上面那种类似尾插法 得到正序链表
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gXbGD8Oa-1597025336863)(https://upload-images.jianshu.io/upload_images/7186975-a32399f9c3814db3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
它和尾插法的不同 主要在于当其中一个链表归并完毕后
剩余的链表需要一个一个拆开 再并入
图中少定义了 LNode *s; 放在C=A;前面