qq_40694726 2018-08-21 03:02 采纳率: 69.2%
浏览 854
已采纳

遍历一次找多个不同的较小值

有一串无序数字,如何在只遍历一次的情况下用数组存多个不同的较小值
(越准确越好,之前写的误差都太大了)

  • 写回答

6条回答 默认 最新

  • 小夜夜er 2018-08-22 02:29
    关注

    把N个数据放在磁盘上,此外,在内存开辟一个可以容纳M个数据的最小堆。每次从磁盘上读取一个数据,若最小堆未满,则直接放入最小堆中,调整堆使其符合最小堆的性质;若最小堆已满,则将这个数与最小堆根结点上的数值进行比较,若比根结点的数值大,则替换掉根结点上的值,然后重新调整最小堆使其符合最小堆的性质。遍历完M个数据后,这个容量为N的最小堆里面存放的就是前N个最大值了。求最小值跟这个类似

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr
  • ¥15 怀疑手机被监控,请问怎么解决和防止
  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区
  • ¥15 在grasshopper里DrawViewportWires更改预览后,禁用电池仍然显示
  • ¥15 NAO机器人的录音程序保存问题
  • ¥15 C#读写EXCEL文件,不同编译