您将如何在O(n * log K)时间中对平均长度为K的n个排序列表进行排序?

您将如何在O(n * log K)时间中对平均长度为K的n个排序列表进行排序?,第1张

您将如何在O(n * log K)时间中对平均长度为K的n个排序列表进行排序?

正如您对问题的评论中提到的那样,不可能使用O(nlog(k)),但此页面上有两种算法可以有效地完成您的任务;这是一个:

取每个列表的第一个元素并创建一个堆(大小为k)。d出最小的元素。从元素中找到数组(假设它来自列表编号i)。从列表i中取出下一个元素并将其推入堆中。对于合并列表中的每个元素,我们花费了log(k)时间。因此,时间复杂度为O(N* logk),其中N是所有K个列表中元素的总数。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5643344.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存