car*_*ian 0 java collections performance data-structures
所以我有一个包含Set中的一堆记录的程序.该集可能有几个项目或可能有数十万个.每条记录的一位数据是时间戳.我需要消除一组中的所有项目,但是相互之间的时间间隔为15秒.最有效的方法是什么?
目前我创建了该集的副本.然后我遍历集合,将第一个项目与其他项目进行比较,然后重复.如果发现匹配在15秒内,我将从重复集中删除它.然后将副本集写出到文件中.
显然这有效,但我终于意识到这是非常低效的.对于大型套装,这似乎需要花费很长时间,假设它不是出现其他问题.有人能为我提供更智能,更快捷,更有效(或恰当)的方式来实现这一点吗?我意识到,因为记录包含时间戳,排序它们可能会有很大帮助.我想保留这一切都包含在程序中,所以我想我需要研究排序和比较器.
我无法完全解决这个问题.我想出了一些改进我的代码的其他想法,但我不禁感到我仍然完全错了.谢谢你的任何建议.
哦,这是为了工作,而不是学校或任何其他任何帮助表示赞赏.
现在,您描述的算法在O(n 2)时间内运行.
现在,如果您需要更快的算法,您可以做的是
如果你这样做,那么你的算法可能是一个更易管理的O(n*lg(n))时间复杂度
| 归档时间: |
|
| 查看次数: |
1158 次 |
| 最近记录: |