д-арная куча

Большая куча Двоичная куча и d-heap Двоичная куча — это 2-кучная, троичная куча — 3-кучная.   Изобретена Дональдом Б. Джонсоном в […]

Большая куча

  • Двоичная куча и d-heap

    • Двоичная куча — это 2-кучная, троичная куча — 3-кучная.  
    • Изобретена Дональдом Б. Джонсоном в 1975 году.  
    • Позволяет быстрее выполнять операции с пониженным приоритетом, но медленнее удалять минимум.  
  • Структура данных

    • Состоит из массива элементов с приоритетами.  
    • Элементы образуют полное d-образное дерево.  
    • В минимальной куче каждый элемент имеет приоритет не ниже родительского.  
    • В максимальной куче каждый элемент имеет приоритет не выше родительского.  
  • Операции

    • Удаление элемента: последний элемент перемещается на его место, длина массива уменьшается.  
    • Вставка элемента: элемент добавляется в конец массива, затем заменяется родительским элементом.  
    • Изменение приоритета: элемент заменяется дочерним элементом с наименьшим или наибольшим приоритетом.  
  • Анализ

    • Вставка нового элемента: O(log n / log d) времени.  
    • Удаление корневого элемента: O(d log n / log d) времени.  
    • Создание кучи: O(sd(n) ed(n)) времени.  
  • Приложения

    • Алгоритмы Дейкстры и Прима используют минимальную кучу.  
    • Общее время выполнения: O(m logm/n n) для d-ary кучи.  
    • Кучи Фибоначчи дают лучшее теоретическое время выполнения, но на практике d-ary кучи работают быстрее.  
  • Практические аспекты

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

Полный текст статьи:

д-арная куча

Оставьте комментарий

Прокрутить вверх