Тема: PriorityQueue c константным временем работы?
В статье https://e-maxx.ru/algo/stacks_for_minima о модификации стека и очереди для нахождения минимума за O (1) описан вариант 1, который обладает следующими особенностями:
1. Элементы хранятся в неубывающем порядке
2. Некоторые элементы могут быть удалены во время вызова add()
Если копировать удаленные элементы в другой список, мы получаем крутую приоритетную очередь - добавление за константу (согласно статье), получение/удаление минимума это просто peek/poll и тоже константа!, size это сумма размера очереди и размера хранилища удаленных элементов.
Понятно, что poll в цикле не даст отсортированный массив (вроде как одна явная разница) - но можно просто скомбинировать очереди и удаленные элементы и отсортировать если имеется такая необходимость. В чем еще может быть подвох - иначе такая структура выглядит лучше двоичной кучи по всем параметрам