摘要:
问题描述:问题来自习题6.5-8 给出一个时间为O(nlgk),用来将k个已排序链表合并为一个排序链表的算法。此处n为所有输入链表中元素的总数。(提示:用一个最小堆来做k路合并)。在K路归并问题中,取出最小堆的根元素(最小元素)后,如果此元素没有后继元素(next为空),则有两种方案:一、从K路中的另一个链表取出一个元素放到根位置。二、将堆底部最后一个元素挪到根位置,并将堆大小减一。此处采用方案二。堆大小每减一,说明K路中某一个链表已处理完。当堆大小为零时,处理结束。源码与注释:// 链表结点类classNode {intvalue;Nodenext;}publicclassKMerge {p 阅读全文
浙公网安备 33010602011771号