2011-04-14 151 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

相關問題