2011-04-14 153 views
1

我有一个程序,只是一个大循环。我首先有一个空集。在for循环的每次迭代中,我需要查看并从集合中删除最小值。同样在每次迭代中,我可以添加0到8个值到集合(值是随机的)。我应该使用哪种内置Java数据结构?我考虑使用ArrayList进行冒泡排序,只是取出第一个索引。我正在寻找最快的算法来完成这项任务。这种情况下最好的数据结构和算法是什么?

回答

9

尝试PriorityQueue。它为插入方法提供O(log(n))时间(add(),remove());用于检索方法的恒定时间(size(),peek())。

+0

你可以提到删除也是O(log(n))。 – 2011-04-14 05:25:42

+1

@j_random_hacker,完成。 – 2011-04-14 05:32:06

+1

其实你现在有几个“和”,包括一个非常实用的'和()':-P – 2011-04-14 06:07:23

相关问题