早教吧作业答案频道 -->数学-->
已知两个长度分别为m和n的升序链表若将它们合并为一个长度为m+n的降序链表,则最坏情况下的时间复杂度是A.O(n)B.O(mn)C.O(min(m,n))D.O(max(m,n))
题目详情
已知两个长度分别为m 和n 的升序链表
若将它们合并为一个长度为m+n 的降序链表,则
最坏情况下的时间复杂度是
A.O(n) B.O(mn) C.O(min(m,n)) D.O(max(m,n))
若将它们合并为一个长度为m+n 的降序链表,则
最坏情况下的时间复杂度是
A.O(n) B.O(mn) C.O(min(m,n)) D.O(max(m,n))
▼优质解答
答案和解析
wandersss 网友说的不对,即使改成“非降序链表”,准确答案是O(m+n)而不是O(max(m,n)),比如链表1为100~999(900个数,m=900),链表2为1~99、1000(100个数,n=100),整个比较次数为99+900=999次.
下面我说说我对这道题的理首先这道题的准确答案是O(m+n),可是选项中没有,所以只能选一个最符合准确答案的选项,即使它不一定是正确的.
假设m大于n,
如果m非常接近于n,则O(m*n)~=O(n^2)>>O(m+n)~=O(2n),所以B不正确
如果m>>n,则O(m+n)>>O(n),O(m+n)>>O(min(m,n)) =O(n),所以A、C不正确
只有D,如果m非常接近于n,则O(m+n)~=O(2n)约等于O(n);如果m>>n,O(m+n)也约等于O(max(m,n))=O(m)
这道有序链表合并的问题,如果是按照原序排列,则最好的情况是O(min(m,n)) ,最坏的情况是O(m+n);如果是按照原序的逆序排列,则无论最好最坏都是O(m+n)
一开始说了最坏情况,下面说一下最好情况.比如链表1为100~999(900个数,m=900),链表2为0~99(100个数,n=100),整个比较次数为100次.在比较完成之后直接把链表1剩余所有链表直接挂在新链表(也可以直接是链表2)的后面.
下面我说说我对这道题的理首先这道题的准确答案是O(m+n),可是选项中没有,所以只能选一个最符合准确答案的选项,即使它不一定是正确的.
假设m大于n,
如果m非常接近于n,则O(m*n)~=O(n^2)>>O(m+n)~=O(2n),所以B不正确
如果m>>n,则O(m+n)>>O(n),O(m+n)>>O(min(m,n)) =O(n),所以A、C不正确
只有D,如果m非常接近于n,则O(m+n)~=O(2n)约等于O(n);如果m>>n,O(m+n)也约等于O(max(m,n))=O(m)
这道有序链表合并的问题,如果是按照原序排列,则最好的情况是O(min(m,n)) ,最坏的情况是O(m+n);如果是按照原序的逆序排列,则无论最好最坏都是O(m+n)
一开始说了最坏情况,下面说一下最好情况.比如链表1为100~999(900个数,m=900),链表2为0~99(100个数,n=100),整个比较次数为100次.在比较完成之后直接把链表1剩余所有链表直接挂在新链表(也可以直接是链表2)的后面.
看了已知两个长度分别为m和n的升序...的网友还看了以下:
数学二项式定理题已知a+b>0,b=4a,(a+b)^n的展开式按a的降幂排列,其中第n项与第n+ 2020-05-16 …
升降机以速度v=4.9m/s匀速竖直上升,升降机内的天花板上有一个螺丝帽突然松脱,脱离天花板.已知 2020-05-17 …
如图所示为电工师傅用移动式升降机抢修一条动力外线,已知升降机的箱蓝重900N,用升降机将重600N 2020-06-13 …
一堆黄土如图所示,已知A的面积是25平方米,B的面积是15平方米,A处比B处高4米,现在把A处的土 2020-06-17 …
(2014•陕西)如图,某飞行器在4千米高空飞行,从距着陆点A的水平距离10千米处开始下降,已知下 2020-07-05 …
一种商品降价3/20后售价340元,这件商品将提了多少2、一种商品售价360元,比原价降低了4/5 2020-07-19 …
几道关于三角函数的题,1.在Rt△ABC中,∠C=90°﹙1﹚已知a=35,c=35根号2,求∠A 2020-07-21 …
有理数的除法与乘方应用题1.某制药厂的一个冷库室温度是-3摄氏度,现有一批药品要在-24摄氏度冷藏, 2020-11-30 …
1.按降幂摆列写出关于字母x的二次三项式,使它的最高次数项的系数是2,一次项系数为-2,常数项是-1 2020-12-24 …
①已知/a/=4,/b/=3且a>b的值②已知/a+b/=0,/a-1/2/=0求a-b的值?什么答 2021-01-13 …