У кучи появился способ создать её из уже готового массива
12.02.2026У кучи появился способ создать её из данных, уже расположенных в нужном порядке, без затрат на перестроение. Пока помечен как нестабильный.
Какая была проблема
Куча хранит данные в массиве, где на вершине лежит наибольший элемент, а остальные удовлетворяют условию на каждом шаге вверх. Взять произвольный массив и «сделать из него кучу» — значит перестроить его.
Если данные уже соответствуют этому порядку, перестроение бессмысленно. И это не экзотика: данные, полученные отсортированным перебором, или уже обработанные очередью с приоритетом, часто уже в нужном порядке.
Что даёт метод
Создание за постоянное время без перестроения. Ответственность за порядок на вызывающем коде — если данные ему не соответствуют, поведение кучи будет неверным, и это не обнаружится сразу.
Тем же обоснованием добавлен доступ к внутреннему буферу в виде среза — чтобы данные можно было прочитать и изменить, минуя проверки поддержания порядка.
Оригинал
Implementation for rust-lang/rust#152500; доступ к буферу — rust-lang/rust#154011
Упоминаний: 1 · Просмотров: 3