Реализуем ли поиск k-го по убыванию элемента в максимальной куче за O(k*log k )? Под максимальной кучей в данном контексте понимается бинарное дерево, в котором каждая вершина имеет ключ больший, чем любой из её потомков.

задан 5 Ноя '16 2:30

изменен 5 Ноя '16 14:30

Детальнее опишите вопрос. Лично мне неясно, что Вы имели в виду.

(5 Ноя '16 4:32) onelove_

Что конкретно, Вам, не ясно из условия?

(5 Ноя '16 13:49) killedbymath
10|600 символов нужно символов осталось
1

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

В данной пирамиде верхний элемент будет вершиной с наибольшим ключом, которая еще не была взята.

Изначально в ней лежит верхняя вершина исходной пирамиды. Она помечается взятой, удаляется, и добавляются ее дети. Так делаем $%k$% итераций. Каждый делается 3 действия в пирамиде, в которой $%O(k)$% элементов, поэтому асимптотика $%O(k\log k)$%.

Последний помеченный элемент будет $%k$%-м по убыванию.

ссылка

отвечен 5 Ноя '16 19:22

изменен 5 Ноя '16 19:35

10|600 символов нужно символов осталось
Ваш ответ

Если вы не нашли ответ, задайте вопрос.

Здравствуйте

Математика - это совместно редактируемый форум вопросов и ответов для начинающих и опытных математиков, с особенным акцентом на компьютерные науки.

Присоединяйтесь!

отмечен:

×1,050
×383
×153
×94

задан
5 Ноя '16 2:30

показан
323 раза

обновлен
5 Ноя '16 19:35

Отслеживать вопрос

по почте:

Зарегистрировавшись, вы сможете подписаться на любые обновления

по RSS:

Ответы

Ответы и Комментарии

Дизайн сайта/логотип © «Сеть Знаний». Контент распространяется под лицензией cc by-sa 3.0 с обязательным указанием авторства.
Рейтинг@Mail.ru