Куча (heap) — это не что иное, как двоичное дерево с некоторыми дополнительными правилами, которым оно должно следовать: во-первых, оно всегда должно иметь структуру кучи, где все уровни двоичного дерева заполняются слева направо, и, во-вторых, оно должно быть упорядочено в виде…
Перевод статьи подготовлен специально для студентов курса «Алгоритмы для разработчиков». Пирамидальная сортировка (или сортировка кучей, HeapSort) — это метод сортировки сравнением, основанный на такой структуре данных как двоичная куча. Она похожа на сортировку выбором, где мы сначала ищем максимальный элемент и помещаем его в конец. Далее мы повторяем ту же операцию для оставшихся элементов. Читать дальше →
Это продолжение статьи «Сортировка слиянием — не так просто, как кажется». Там я довёл тестовое задание — отсортировать 100 ГБ строк вида число. текст за час — до 32 минут: пайплайн из пяти стадий на Channels, Brotli, sort keys во временных файлах. Сортировка, конечно же, с учетом…
Три года назад я опубликовал статью Сортировка слиянием — не так просто, как кажется, в которой решал задачу с собеседования, как построчно отсортировать огромный текстовый файл, который заведомо не влезает в оперативную память.Формат строки: число, точка, пробел, далее любые…