2012-07-22 2 views
-3

Просто нужно знать, что ожидаемое операционное время приоритетной очередиEexpected эксплуатационного времени приоритетной очереди

O (п) O (Л.Г. п) или O (2) или O (1) или O (3)

+1

Для каких операций? – Thilo

+0

@Thilo над всеми, я имею в виду для всех операций – user1419170

+3

O (2) и O (3) не имеет смысла. Знак Big O удаляет любую константу в формуле для вычисления сложности, поэтому они такие же, как O (1). Если постоянное значение, то вы не должны использовать нотацию Big-O (по крайней мере, для самого высокого термина). – nhahtdh

ответ

4

Тогда читайте the documentation: примечание

реализации: это реализация обеспечивает O (журнал (п)) время для в enqueing и dequeing методы (предложение, опрос, удалить() и добавить); линейное время для удаления (Object) и содержит (Object) методы; и постоянное время для методов поиска (peek, element и size).

+0

Bummer. Теперь он должен проверить все три своих варианта: O (log n), O (n), O (1) – Thilo

+0

Очередь приоритета. Для того, чтобы найти элемент с наивысшим приоритетом, необходимо сохранить какую-то структуру. –

0

PriorityQueue имеет следующие основные методы:

  • надстройку (е)/предложение (е) - добавляет элемент е в очереди: O (журнал (п))
  • заглядывать() - получает первый элемент сортированной очереди: O (1)
  • pool() - получает первый элемент сортированной очереди и удаляет его из очереди: O (log (n))
  • remove (e) - удаляет элемент e из списка O (log (n))
  • содержит - проверяет, содержит ли в очереди элемент e: O (n)

где n представляет количество элементов из очереди.

Смежные вопросы