77问答网
所有问题
已知两个长度为m和n的升序链表,将他们合并为长度为m+n的降序链表,最坏情况下时间复杂度怎样求
如题所述
举报该问题
推荐答案 推荐于2020-01-08
已知两个长度为m和n的升序链表将他们合并为长度为m+n的降序链表,最坏情况下时间复杂度怎样求,合并时最坏情况下,长为n的链表中前n-1个都比长为m的链表中的第一元素小,而长为n的链表中最后一元素又比长为m的链表中所有元素大。这样比较元素的次数n+m,则时间复杂度为O(m+n)
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://77.wendadaohang.com/zd/W8WvvWp8pGp3Y8I3WW.html
其他回答
第1个回答 推荐于2018-08-07
两个升序表合并,两两比较表中的元素,每比较一次确定一个元素的位置(取较小的元素,头插法)。当一个
链表
比较结束后,将另一个链表的剩余元素插入即可。最坏的情况是两个链表中的元素一次比较,所以
时间复杂度
是O(max(m,n))
本回答被网友采纳
第2个回答 2019-06-17
设a<b,即a=min(m,n)/b=max(m,n)。
两个表都是升序,选择a长度的链表为结果表,a链表的第一个元素开始和b链表第一个元素比较,如果a0 < b0,则将a0插到b0前,然后a1和b0比较,以此类推;
最好情况是a全排在b前,时间复杂度为O(min(m,n)),最坏情况是有元素排在m后,时间复杂度为O(max(m,n))
第3个回答 2021-07-14
这里可能比较有争议的就是o(n+m)和o(max(m,n)),按我个人的理解只有以下两种情况,1:m或n其中一个趋于无穷,另一个为常数,复杂度为o(max(m,n));2:m和n趋于相等,即2m或2n,按复杂度的计算方法来看,无论是2m还是2n,复杂度还是o(max(m,n))
第4个回答 2018-02-28
排序是双循环,最坏情况下的时间复杂度即为(m+n)的平方。
1
2
下一页
相似回答
大家正在搜
相关问题
6.【2013统考真题】已知两个长度分别为m和n的升序链表,...
已知两个长度分别为m 和n 的升序链表
为什么 合并两个长度分别为m和n的有序表,最坏情况下需要比较...
长度为n的链表进行逆序操作,请问他的时间复杂度是多少,并说明...
将长度m和n的有序链表合并为一个个新的有序链表的算法的时间复...
数据结构算法题,合并两个链表的算法,计算时间复杂度。
数据结构考研。
将长度为n的单链表链接在长度为m的单链表之后的算法的时间复杂...