链表最烦了,懒得写代码,就写一下思路吧。
建一个大小为K的堆,初始包含K个链表的第一个元素。
迭代执行ExtractMin,然后用被抽取元素所在链表的下一个元素填充到堆里,一直到堆大小为0就行了
堆的规模为K,所以抽取和插入操作都是O(lgk),一共抽取和插入n次,所以时间复杂度是O(nlgk)
链表最烦了,懒得写代码,就写一下思路吧。
建一个大小为K的堆,初始包含K个链表的第一个元素。
迭代执行ExtractMin,然后用被抽取元素所在链表的下一个元素填充到堆里,一直到堆大小为0就行了
堆的规模为K,所以抽取和插入操作都是O(lgk),一共抽取和插入n次,所以时间复杂度是O(nlgk)