Size: a a a

2020 July 22

KO

Konstantin Osipov in pro.cxx
std::make_heap всегда делает полную перебалансировку.
источник

CD

Constantine Drozdov in pro.cxx
Konstantin Osipov
интрузивный хип - это такой хип, который внутри ноды содержит её position in the heap, и во время sift_up/sift_down обновляет эту позицию.
а, а чем set просядет от этой структуры?
источник

CD

Constantine Drozdov in pro.cxx
ну чутка дисбаланс больше, раза в 1.5
источник

KO

Konstantin Osipov in pro.cxx
причём тут дисбаланс, у Set стоимость операции log(N), а у heap - константа
источник

CD

Constantine Drozdov in pro.cxx
Konstantin Osipov
причём тут дисбаланс, у Set стоимость операции log(N), а у heap - константа
какая стоимость операции? апдейт логарифм, запрос середины - константа
источник

KO

Konstantin Osipov in pro.cxx
для того чтобы обновить позицию одного элемента, его надо будет удалить и вставить заново. то есть два логарифма.
источник

CD

Constantine Drozdov in pro.cxx
Konstantin Osipov
для того чтобы обновить позицию одного элемента, его надо будет удалить и вставить заново. то есть два логарифма.
а в хипе вам надо будет тащить его до корня, то есть один логарифм, это все еще константа
источник

KO

Konstantin Osipov in pro.cxx
я не распарсил.
источник

CD

Constantine Drozdov in pro.cxx
Konstantin Osipov
я не распарсил.
ну изменение ключа в хипе это логарифм, разумеется
источник

KO

Konstantin Osipov in pro.cxx
нет
источник

CD

Constantine Drozdov in pro.cxx
что значит нет?
источник

KO

Konstantin Osipov in pro.cxx
не логарифм
источник

CD

Constantine Drozdov in pro.cxx
Konstantin Osipov
не логарифм
я вам за линию массив отсортирую прямо сейчас
источник

CD

Constantine Drozdov in pro.cxx
там линейное построение + линейное число изменений ключа
источник

KO

Konstantin Osipov in pro.cxx
не надо, просто прочитайте как это работает. частичная перебалансировка кучи -константа
источник

CD

Constantine Drozdov in pro.cxx
Konstantin Osipov
не надо, просто прочитайте как это работает. частичная перебалансировка кучи -константа
make_heap линия, изменение одного элемента - логарифм
источник

KO

Konstantin Osipov in pro.cxx
спасибо большое за ответ.
источник

CD

Constantine Drozdov in pro.cxx
Konstantin Osipov
спасибо большое за ответ.
Ну проверьте. Хипсорт требует один раз построить хипу, после чего N раз поменять значение ключа в корне.
источник

CD

Constantine Drozdov in pro.cxx
Построение за O(N), откуда взялся N * log N?
источник

CD

Constantine Drozdov in pro.cxx
Там получается амортизация, если изменять все элементы, потому что никакой элемент не пытается всплывать, а средний путь вниз О(1).
источник