Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.

题意:对k个有序的链表进行归并排序。并分析其复杂度。

/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* merge(ListNode* left, ListNode* right){ //归并操作
if(left==NULL) return right;
if(right==NULL) return left;
ListNode *ans =new ListNode();
if(left->val <= right->val){
ans=left;
left = left->next;
}else{
ans=right;
right=right->next;
}
ans->next = merge(left,right);
return ans;
}
ListNode* mergesort(vector<ListNode *> &lists,int left,int right){ //devide && conquer
if(left>right){
return NULL;
}if(left==right){
return lists[left];
}else{
int middle = (left+right)>>;
ListNode *lleft = mergesort(lists,left,middle);
ListNode *lright = mergesort(lists,middle+,right);
return merge(lleft,lright);
} }
ListNode *mergeKLists(vector<ListNode *> &lists) {
int left =,right =lists.size()-;
int middle= (left+right)>>;
ListNode *lleft = mergesort(lists,left,middle);
ListNode *lright = mergesort(lists,middle+,right);
return merge(lleft,lright);
}
};

时间复杂度: O(n*logn)

空间复杂度: O(1)

至于具体的量化分析呢,呵呵。。。数学推导了

转载请注明出处: http://www.cnblogs.com/double-win/谢谢!

最新文章

  1. 【干货分享】流程DEMO-制度发文和干部任免
  2. C#中一些常用的加密和哈希处理
  3. CSS3中的counter和content属性,一些简单的内容显示就不需要JS去实现了
  4. P2661 信息传递 TODO-TARJAN算法
  5. 第三章 Python容器:列表、元组、字典与集合
  6. 我对c++对象内存布局的理解
  7. 练习2 H题 - 求数列的和
  8. Nginx源码研究七:nginx的location指令分析
  9. hdu - 3049 - Data Processing(乘法逆元)
  10. ASP.NET MVC 学习笔记 1
  11. springCloud Hystrix 断路由
  12. Locust no-web 模式与参数详解
  13. iOS9中关于地址簿ABAddressBookXXX之类方法被废弃的解决
  14. 编译安装MySQL5.6失败的相关问题解决方案
  15. ***微信小程序学习文档和资料归档收集
  16. 互联网视频直播技术(广电总局、优酷土豆、XX直播)
  17. 关于学习Linux的基本命令操作
  18. 根据文件大小自动判断单位B,KB,MB,GB
  19. WiFi热点(1):windows8建wifi虚拟热点
  20. PAT Basic 1016

热门文章

  1. day-9心得
  2. leetcode680
  3. 你应该使用 Django admin 的 9 个理由(转)
  4. DataSnap 连接池
  5. MFC单文档分割区(CSplitterWnd)
  6. 关于struts2.x中(警告: Could not find property [struts.valueStack])的解决方法
  7. glBuffers &amp; glVertexPtrs
  8. C++11之nullptr
  9. jquery入门 修改网页背景颜色
  10. Opencv Canny