已知两个长度分别为m 和 n 的升序链表,合并降序链表,求最坏时间复杂度

自己做的笔记.

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)

              

                

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值