java取系统时间 一道java面试题,20亿数字的文本排序,如何取前100?

一道java面试题,20亿数字的文本排序,如何取前100?因为这是一个Java问题,所以这是典型的TOPK问题。首先取前100个数字构建一个最小堆,然后依次从堆的顶部插入剩余的数字,同时调整堆。堆中最

一道java面试题,20亿数字的文本排序,如何取前100?

因为这是一个Java问题,所以这是典型的TOPK问题。首先取前100个数字构建一个最小堆,然后依次从堆的顶部插入剩余的数字,同时调整堆。堆中最后100个元素就是结果。空间复杂度为k,时间复杂度为nlogk

首先感谢吴空书记的邀请。这个问题有两种情况:

第二,输入公式:=max(area or array),=min(area or array)

第三,时间的比较也是上述原因。

如果您有任何其他问题,请在评论区留言。

以上是我个人对这个问题的拙见。如果你认为它对你有帮助,请喜欢它。如果你有任何意见,欢迎分享。