2012-07-22 121 views
-3

只需要知道的操作時間,什麼是優先級隊列的預期操作時間Eexpected一個優先級隊列

爲O(n)O(LG N)或O(2)或O(1)或O- (3)

+1

對於什麼操作? – Thilo 2012-07-22 10:18:22

+0

@Thilo在所有,我的意思是所有操作 – user1419170 2012-07-22 10:19:37

+3

O(2)和O(3)沒有意義。大O符號將刪除公式中的任何常數來計算複雜度,因此它們與O(1)相同。如果不變,那麼你不應該使用Big-O符號(至少在最高期限內)。 – nhahtdh 2012-07-22 10:19:43

回答

4

然後閱讀the documentation

實現注意事項:此實現提供了O(日誌(n))的時間 的入隊和dequeing方法(報價,民意調查顯示,刪除(),並添加); 線性時間爲remove(Object)和contains(Object)方法;和 檢索方法的恆定時間(peek,element和size)。

+0

無賴。現在他必須檢查他的三個選項:O(log n),O(n),O(1) – Thilo 2012-07-22 10:22:34

+0

優先級隊列。它需要保持某種結構以找到最高優先級的元素。 – 2012-07-22 10:23:36

0

的PriorityQueue具有以下主要方法:

  • 添加(E)/提供(E) - 添加元素e隊列:O(的log(n))
  • PEEK() - 得到排序隊列的第一個元素:O(1)
  • pool() - 獲取排序隊列的第一個元素並將其從隊列中移除:O(log(n))
  • remove(e) - 刪除元素e從列表O(log(n))
  • 包含 - 檢查隊列是否包含元素e:O(n)

其中n表示隊列中元素的數量。