请给出一个时间为O(nlogk)、用来将k个已排序链表合成一个有序链表的算法。里n表示所有输入链表中元素的总数。

请给出一个时间为O(nlogk)、用来将k个已排序链表合成一个有序链表的算法。里n表示所有输入链表中元素的总数。算法设计与分析题目,应该需要用到堆排序,求思路。

你可以看下我博客中的单链表操作。
你先把k个链表通过 "合并一"操作,然后在去排序。
时间复杂度不能保证是你那个,我博客里用的是插入排序,你可以借鉴下。

最小堆排序k个链表,每次取最小的时间复杂度为logk n个就nlogk

因为都是有序的,先将k个链表的左侧最小值放入 只容纳k个元素的的小顶堆中,每次取出堆顶元素,再将堆顶所在链表的下一个值放入该堆,依次循环完n个元素,每个元素放入堆的时间复杂度为logk