请问这里有人看Introduction to Algorithms么,看看这道题怎么解
因为数据结构这块放下有点时间了,有的东西不太确定,周围也没老师, 发这里向大家请教。
题目就是书中6.5-8,看过的朋友
Give an O(n lg k)-time algorithm to merge k sorted lists into one sorted list, where n is the total number of elements in all the input lists. (Hint: Use a min-heap for k-way merging.)
我的思路是,先将k个 有序列分别整理成 minheap, 然后将每个minheap的指针存放在一个数组S里,判断S里元素大小的依据是 其minheap的根大小, 以此把这个数组S再整理成minHeap。下面进行n次循环,每次循环从大minheap S中提取根元素——某个小minheap(指针),然后从这个小minheap中提取根元素,由此完成一个元素的merg。
不知道这样想对不对,代码即使用pseudocode 来描述也比较繁琐,所以有点怀疑