2013 数据结构 复杂度分析 选择题
第 1 题

已知两个长度分别为 m 和 n 的升序链表,若将它们合并为一个长度为 m+n 的降序链表,则最坏情况下的时间复杂度是()。

复杂度分析

A.O(n)

B.O(m×n)

C.O(min(m,n))

D.O(max(m,n))

[tag_link] 正确答案:D两个升序链表合并,两两比较表中元素,每比较一次确定一个元素的链接位置(取较小元素,头插法)。当一个链表比较结束后,将另一个链表的剩余元素插入即可。最坏的情况是两个链表中的元素依次进行比较,直到两个链表都到表尾,即每个元素都经过比较,时间复杂度为O(m+n)=O(max(m,n))。