![]() |
1
5
而不是存储所有 N (所有文件中数字的总计数)值并对其进行排序,您只能存储100个值—每个时刻最大的值。 此任务的方便快捷的数据结构- priority queue binary heap ).创造 闵
空间复杂性是
演示其工作原理的Python示例:
|
![]() |
2
2
添加到@MBo中,Java实现如下所示 使用大小为100的优先级队列创建最小堆
从文件中读取数字,插入并平衡最小堆。将min堆中的minValue与newValue进行比较。如果较大,则删除minValue并插入newValue。
现在您可以从最小堆中以升序获得100个最大数
如果您希望相同的100个最大数字按降序排列,只需将相同的队列转换为最大堆(即,再次转换为优先级队列)
或者只是在构建中使用 Collections.reverseOrder
|