早教吧作业答案频道 -->数学-->
已知两个长度分别为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的升序...的网友还看了以下:
双链DNA连接的化学键是什么?1 双链DNA两链之间有链接吗?如果有,2 连接两个核苷酸,也就是从 2020-05-17 …
我们光速是自然界运动中的最大速度,可是究竟能不嫩突破呢?举个例子:手持一个链球旋转,很显然,链球的 2020-05-23 …
链传动的链节数是指什么?比如说知道一个链传动的链节数是88,这里有滚子链的外链节板的数目,内链节板 2020-06-07 …
不对称转录的问题不对称转录包括两方面含义:1在DNA双链上,一条链作为模板进行转录,另一个链不转录 2020-06-26 …
三个链轮一条链子!上面两个链轮下面一个链轮排在中间!由于链子比较松下面那个经常打滑请问怎么处理链子 2020-06-30 …
有长度分别为16厘米和20厘米的甲乙两种铁丝若干,将它们连成链条,每一个接头处都耗去1cm.小明只选 2020-11-20 …
哪位高手能编一下这道程序,建立两个单项链表,按交替的顺序轮流从这链表中取其成员归并成为一个新的链表, 2020-11-28 …
英语翻译1.我们不装载A附件,但是先把链条海运走(包括B附件100链板)2.B附件(150个链板和2 2020-12-04 …
已有a,b两个链表,要求把两个链表合并并升序排列。假定给定的a、b为升序排列。输入时,首先输入两个数 2020-12-05 …
数据结构题目;实现两个链表的合并实现两个链表的合并基本功能要求(1)建立两个链表A和B,链表元素的个 2021-01-13 …