Jump to content

Радикс-куча

Поразрядная куча — это структура данных для реализации операций монотонной очереди с приоритетами . Затем можно управлять набором элементов, которым назначен ключ. Время выполнения операций зависит от разницы между наибольшим и наименьшим ключом или константой. Структура данных состоит в основном из серии сегментов, размер которых увеличивается в геометрической прогрессии .

Предварительные условия

[ редактировать ]
  1. все ключи — натуральные числа ;
  2. макс. ключ - мин. ключ C для постоянной C;
  3. операция извлечения-мин является монотонной; то есть значения, возвращаемые последовательными extract-min, вызовами монотонно увеличиваются .

Описание структуры данных

[ редактировать ]

Три наиболее важных поля :

  1. размера , с наименьшим индексом 0, сохраняет сегменты;
  2. размера , с наименьшим индексом 0, сохраняет (нижние) границы сегментов;
  3. , выполняется для каждого элемента в куче ведро, в котором оно хранится.

На диаграмме выше показана структура данных. Применяются следующие инварианты:

  1. вводить : ключи в вверх или вниз через значение в или ограничено.
  2. и для : размеры ведер увеличиваются в геометрической прогрессии.

Важно отметить экспоненциальный рост пределов (и, следовательно, диапазона, который удерживает ведро). Таким образом, логарифмическая зависимость величин поля имеет значение C, максимальную разницу между двумя ключевыми значениями.

Операции

[ редактировать ]

Во время инициализации генерируются пустые сегменты и нижние границы генерируются (согласно инварианту 2); время работы .

Во время вставки новый элемент линейно перемещается справа налево через сегменты и новый элемент с хранится в левом ведре для этого ; время работы .

Для уменьшения-key сначала уменьшается значение ключа (проверка на соответствие инвариантам). Затем Поле используется для поиска элемента и при необходимости повторяется влево аналогично операции вставки . Время работы (амортизировано).

Операция extract-min удаляет элемент из корзины. и возвращает его. Если ведро еще не пуст, операция прекращается. Однако если он пуст, ищется следующий больший непустой блок, его наименьший элемент. отслеживается и устанавливается равным k (для этого требуется монотонность). Затем согласно инвариантам переопределяются границы сегмента и удаляются элементы. к вновь образовавшимся ковшам; время работы (амортизировано).

Если отображается, поле обновляется.

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 8f169050f5e63b71c9f3ed0458ecf103__1715614680
URL1:https://arc.ask3.ru/arc/aa/8f/03/8f169050f5e63b71c9f3ed0458ecf103.html
Заголовок, (Title) документа по адресу, URL1:
Radix heap - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)