deepeshdm3434 Ответов: 3

Являются ли приоритетные очереди только минимальной или максимальной кучей ?


Насколько я видел , большинство реализаций для приоритетной очереди-это либо создание минимальной, либо максимальной кучи.

существует ли какой-либо другой способ реализации приоритетной очереди ?

Что я уже пробовал:

Я попытался реализовать приоритетную очередь, используя минимальную и максимальную кучу, используя как массив, так и linkedlist.

3 Ответов

Рейтинг:
0

pioonlaser

Сортировка кучи использует функцию наибольшего (или наименьшего) ключа верхней записи большой корневой кучи (или малой корневой кучи), что упрощает выбор самой большой (или наименьшей) ключевой записи в текущей неупорядоченной области.

(1) Основная идея сортировки с большой корневой кучей

① Сначала постройте исходный файл R[1..n] в большую корневую кучу, которая является начальной неупорядоченной областью

② Обменяйте запись R[1] с самым большим ключевым словом (то есть вершиной кучи) с последней записью R[n] неупорядоченной области, тем самым получив новую неупорядоченную область R[1..n-1] и область последовательности R[n], и удовлетворяет R[1..n-1].ключи≤R[n].ключ

③ Поскольку новый корень R[1] может нарушить природу кучи после обмена, текущая неупорядоченная область R[1..n-1] должна быть настроена на кучу. Затем обмениваем запись R[1] с наибольшим ключевым словом в R[1..n-1] снова с последней записью R[n-1] интервала, тем самым получая новую неупорядоченную область R[1.. n-2] и упорядоченную область R[n-1..n], и все равно удовлетворяем соотношению R[1..n-2].ключи≤R[n-1..n].ключи, также нуждающиеся в R [1..n-2], настраиваются на кучу.

...

Пока в неупорядоченной области не останется только один элемент.

(2) основная операция алгоритма сортировки большой корневой кучи:

① Операция инициализации: постройте R[1..n] в качестве начальной кучи;

② Основная операция каждой сортировки: обмен верхней записи R[1] текущей неупорядоченной области с последней записью интервала, а затем настроить новую неупорядоченную область в кучу (также известную как куча перестроения).

записка:

① Нужно только сделать сортировку n-1 и выбрать более крупные ключевые слова n-1, чтобы увеличить файлы в порядке.

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


deepeshdm3434

Я не прошу сортировки кучи, сначала прочтите вопрос.

Рейтинг:
0

Richard MacCutchan

Пожалуйста, научитесь делать свои собственные исследования: Приоритетная Очередь - Поиск В Google[^].


deepeshdm3434

Я должен сказать тебе то же самое.

Richard MacCutchan

Но я делаю свое. Как ты думаешь, как я нашел эти ссылки? И пожалуйста прочтите Код проекта Быстрые ответы часто задаваемые вопросы[^Он объясняет, как задать вопрос.

deepeshdm3434

О Ричард , мой братан, успокойся, братан, не держи на меня зла, как будто ты здесь единственный, кто отвечает. Если вы что-то знаете , то вы должны определенно отвечать на вопросы, но если вы этого не знаете, вы не должны говорить другим людям, как задавать вопросы.

Richard MacCutchan

Я совершенно замерзла. Моим ответом был совет в безнадежной надежде, что вы начнете использовать свой мозг.

Рейтинг:
0

CPallini

Нет.
Приоритетные очереди обычно реализуются с помощью куч, но существуют альтернативные реализации (которые вы можете просто немного погуглить).