Приоритетные очереди в Java

GROUP BY также помогает, когда Вы хотите генерировать отчет, который составит в среднем или суммирует набор данных. Вы можете ГРУППА идентификатором Отдела и СУММОЙ вся выручка от реализации или AVG количество продаж в течение каждого месяца.

10
задан Jasper 21 September 2011 в 13:12
поделиться

2 ответа

Вы должны удалить элемент, изменить его и повторно вставить, поскольку упорядочение происходит при его вставке. Хотя он включает в себя несколько этапов, он эффективен может быть достаточно хорошим. (Я только что заметил, что комментарий об удалении равен O (n).)

Одна проблема заключается в том, что он также будет переупорядочен, когда вы удалите элемент, что является избыточным, если вы просто собираетесь повторно вставить его через мгновение . Если вы реализуете свою собственную очередь приоритетов с нуля, у вас может быть update (), который пропускает этот шаг, но расширение класса Java не будет работать, потому что вы по-прежнему ограничены функциями remove () и add (), предоставляемыми базой.

13
ответ дан 3 December 2019 в 20:06
поделиться

Я бы ожидал, что PriorityQueue не изменит порядок вещей - и он может очень запутаться, если попытается выполнить двоичный поиск, чтобы найти нужный место для размещения любых новых записей.

Вообще говоря, я бы ожидал, что изменение приоритета чего-то, что уже находится в очереди, будет плохой идеей, точно так же, как изменение значений, составляющих ключ в хеш-таблице.

6
ответ дан 3 December 2019 в 20:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: