两个升序链表合并为降序链表


---

两个升序链表合并为降序链表

原文:https://blog.csdn.net/calculate23/article/details/97490628

image-20210405163114682

---注意算法中单次比较中大的一方下标不变,以此实现两两比较---

看了原文解释后个人理解如下,问题的求解无非两步:

求时间复杂度的步骤:

  1. 考虑最坏情况下的执行次数,例如

    l1: 1 3 5 7 9 (m=5)

    l2: 2 4 6 (n=3)

    数字穿插在两个链表中,需要比较m+n-1次

    (第一次:1和2比,1按头插法插入链表l3,继续;

    ​ 第二次:2和3比,2插入l3,以此类推...

    ​ 当链表l2走完后l1中剩余的7,9直接插入l3)

  2. 根据此执行次数得到对应的时间复杂度

    注意:时间复杂度不等于具体的执行步数,其作用是用来反映执行时间的数量级

    所以由加法规则可知:

    O(m+n-1)=O(max(m,n))


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM