自己做的笔记.
1.算法流程:
(1)找到每个元素的位置
(2)创建新链表,按每个元素对应的位置插入
2.解题:
(1)在第一步骤已经完成情况下,第二步相当于创建一个链表长度为M+N,次数也为M+N
(2)接下来看第一步的流程找到每个元素的位置:
首先看成是小的表 令m>n, 往大的表里面插入
每个n里面的元素与m里的进行比较找到对应位置
此时最坏情况为 m里的每个元素都被比较了
即nmax与mmax比较过,每个元素需要找到左右位置即比较2次(nmax>mmax同理)
1. 先整体看,从最小的到最大的把m里的每个元素都至少比较了一次 , m次
2.接下来算比较2次的(n里的元素每次比较只用从上一个的上限开始,即不存在3次及以上)
除了n最后一个元素外,后续每个元素都有下一个元素跟它的上限比较,即除了它其他人都是1次,他则是1次, 共计n-1次
共计m+n-1次
即总体应该为t(n) = o(m+n)