Оптимальная структура данных для операций приоритетной очереди
В информатике очередь Brodal — это куча / приоритетная структура очереди с очень низкими временными ограничениями в худшем случае : для вставки, поиска минимума, слияния (объединения двух очередей) и уменьшения ключа, а также для удаления минимума и общего удаления. Они являются первым вариантом кучи, который достигает этих ограничений, не прибегая к амортизации эксплуатационных расходов. Очереди Brodal названы в честь их изобретателя Герта Столтинга Бродала. [1]
Имея лучшие асимптотические границы, чем другие структуры приоритетных очередей, они, по словам самого Бродала, «довольно сложны» и «[не] применимы на практике». [1] Бродал и Окасаки описывают постоянную ( чисто функциональную ) версию очередей Бродала. [2]
Сводка времени работы
Вот временные сложности [3] различных структур данных кучи. Сокращение am. указывает на то, что данная сложность амортизирована, в противном случае это сложность наихудшего случая. Для значения " O ( f )" и " Θ ( f )" см . нотацию Big O. Имена операций предполагают минимальную кучу.
^ make-heap — это операция построения кучи из последовательности из n неотсортированных элементов. Она может быть выполнена за время Θ ( n ), когда meld выполняется за время O (log n ) (где обе сложности могут быть амортизированы). [4] [5] Другой алгоритм достигает Θ ( n ) для двоичных куч. [6]
^ abc Для постоянных куч (не поддерживающих reduce-key ) общее преобразование снижает стоимость meld до стоимости insert , в то время как новая стоимость delete-min является суммой старых стоимостей delete-min и meld . [9] Здесь это заставляет meld работать за Θ (1) время (амортизированное, если стоимость insert равна ), в то время как delete-min по-прежнему работает за O (log n ). Применительно к перекошенным биномиальным кучам это дает очереди Бродала-Окасаки, постоянные кучи с оптимальной сложностью в худшем случае. [8]
^ Нижняя граница [12] верхняя граница [13]
^ ab Очереди Бродала и строгие кучи Фибоначчи достигают оптимальных сложностей в худшем случае для куч. Они были впервые описаны как императивные структуры данных. Очередь Бродала-Окасаки — это постоянная структура данных, достигающая того же оптимума, за исключением того, что ключ уменьшения не поддерживается.
Герт Столтинг Бродал
Герт Столтинг Бродал — профессор Орхусского университета , Дания . [19] Он наиболее известен благодаря очереди Бродала.
Ссылки
^ ab Gerth Stølting Brodal (1996). Эффективные очереди с приоритетами в худшем случае. Труды 7-го симпозиума ACM-SIAM по дискретным алгоритмам, стр. 52–58
^ Герт Столтинг Бродал и Крис Окасаки (1996). Оптимальные чисто функциональные очереди с приоритетами. Журнал функционального программирования.
^ ab Brodal, Gerth Stølting; Okasaki, Chris (ноябрь 1996 г.), «Оптимальные чисто функциональные очереди с приоритетами», Journal of Functional Programming , 6 (6): 839–857 , doi : 10.1017/s095679680000201x
^ Окасаки, Крис (1998). "10.2. Структурная абстракция". Чисто функциональные структуры данных (1-е изд.). С. 158–162 . ISBN9780521631242.
^ Такаока, Тадао (1999), Теория 2–3 куч (PDF) , стр. 12
^ Яконо, Джон (2000), «Улучшенные верхние границы для парных куч», Труды 7-го Скандинавского семинара по теории алгоритмов (PDF) , Lecture Notes in Computer Science, т. 1851, Springer-Verlag, стр. 63–77 , arXiv : 1110.4428 , CiteSeerX 10.1.1.748.7812 , doi : 10.1007/3-540-44985-X_5, ISBN3-540-67690-2
^ Pettie, Seth (2005). Towards a Final Analysis of Pairing Heaps (PDF) . Труды FOCS '05 46-го ежегодного симпозиума IEEE по основам компьютерной науки. стр. 174–183 . CiteSeerX 10.1.1.549.471 . doi :10.1109/SFCS.2005.75. ISBN0-7695-2468-0.
^ Хёплер, Бернхард; Сен, Сиддхартха; Тарьян, Роберт Э. (ноябрь 2011 г.). «Кучи ранговых пар» (PDF) . СИАМ Дж. Компьютерные технологии . 40 (6): 1463–1485 . doi : 10.1137/100785351.
^ Бродал, Герт С. (1996), «Эффективные очереди с приоритетами в наихудшем случае» (PDF) , Труды 7-го ежегодного симпозиума ACM-SIAM по дискретным алгоритмам , стр. 52–58