面试题
来源:互联网 发布:吉他教学软件 编辑:程序博客网 时间:2024/06/05 07:21
链接:https://www.nowcoder.com/questionTerminal/7f18cb367f824fc79975804b87e4ee84来源:牛客网
将N条长度均为M的有序链表进行合并,合并以后的链表也保持有序,时间复杂度为()?
a.O(N * M * logN)
b.O(N*M)
c.O(N)
d.O(M)
答案:a
采用堆排序的方法进行合并。(1)首先取出每个链表的第一个元素放在大小为N的数组中,此处的时间复杂度为O(N);并调整成为小根堆,调整堆的时间复杂度为O(lgN)(2)取出数组的第一个元素。将该元素所在链表的下一个元素放在数组的第一个位置,继续调整,使之成为小根堆;(3)重复(2),如果有一个链表已经为空,则改变数组的大小。共调整MN-1次,调整堆的时间复杂度为O(M*N*lgN);建堆的时间复杂度为O(N);故总的时间复杂度为 O(M*N*lgN)
阅读全文
0 0
- 面试题....
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- cocos2d-x场景切换
- 把excel数据生成sql insert语句
- Python2.7 unicode encoding gbk error
- 【NOIP2017提高A组集训10.22】幸运值
- 贫富差距越来越大,有些金融平台却不是我们的救命稻草
- 面试题
- Linux下虚拟空间的管理
- HTML5 桌面通知:Notification API
- Alsa 遇上Android的音频延迟问题
- C语言 一元钱的兑换方案
- 时间戳密码
- Linux平台上SQLite数据库教程(一)——终端使用篇
- Java NioSocket 的用法
- eclipse查看快捷键及自主设置定义快捷键