早教吧作业答案频道 -->数学-->
已知两个长度分别为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的升序...的网友还看了以下:
已知直线l,m和平面α,有下列四个命题:则所有正确命题的序号是————①若l‖m,m属于α,则l‖ 2020-05-20 …
如图,已知OE平分∠AOC,OF平分∠BOC.(1)若∠AOB是直角,∠BOC=60°,求∠EOF 2020-06-06 …
若已知“嫦娥一号”卫星的质量为m,月球的质量为M,万有引力恒量为G,月球半径为R,当“嫦娥一号”与 2020-07-16 …
已知m.n为正整数,实数x,y满足x+y=4(√x+m+√y+m)若x+y的最大值40,则m+n= 2020-07-26 …
如图,已知点A(m,m+1),B(m+3,m-1)(1)求线段AB的长;(2)若已知m=3,x轴上 2020-07-29 …
已知O是锐角△ABC的外接圆的圆心,且∠A=θ,若cosB/sinC*向量ABcosC/sinB* 2020-07-30 …
1.若关于x的二次三项式,x^2-mx+3=0(m是整数),m=2.若m^2-n^2=6,m+n= 2020-07-31 …
已知复数Z1=M+(4-M^2)I(M属于R),Z2=1+YI(Y属于R),若Z1=Z2,求复数Z= 2020-10-31 …
1、已知x+y-z=m,xy-xz-yz=n,用m、n表示x^2+y^2+z^2=m的值.2、求3x 2020-10-31 …
1.3x≤12的自然数解有几个2.若(m-3)x<3-m的解集为x>-1,则m=3.已知不等式3x- 2021-02-04 …