将N条长度均为M的有序链表进行合并,合并以后的链表也保持有序,时间复杂度为?

   利用堆来合并,( O(N) + O(log N * N )) * M。
  先利用最链表第一个数,N个数建立堆,复杂度 O (N)
  重构堆,并排序,复杂度 O(logN * N )
  每个链表M个数,上述两步重复M次。结果为
  M * (O(N) + O(logN * N))= O (M * N * logN)
posted @ 2017-12-25 15:15  极客船长  阅读(2890)  评论(0编辑  收藏  举报