Обновить

Улучшения для сортировки слиянием (Merge sort) с учётом современных реалий

Думаю, неплохо бы сделать сортировку слиянием с такими улучшениями:
1. Меньшее количество необходимой дополнительной памяти. Стандартная сортировка слиянием требует O(N) дополнительной памяти, реально сделать O(sqrt(N)). Память нынче в дефиците и довольно дорогая.
2. Многопоточность. Современные компьютеры многоядерные, эти ядра не мешало бы загрузить вычислениями.
3. Многопутевое слияние (multi-way merge). Это снижает количество обращений к основной памяти (RAM). В многоядерных системах достаточно вычислительных мощностей, и пропускная способность памяти становится узким местом.
4. Адаптивность. Это, по-простому говоря, не сортировать массив, если он уже отсортирован. Как в TimSort.
5. Низкоуровневые оптимизации. Возможно, не сильно нужно. Вряд ли будет заметная прибавка скорости при использовании многопоточности на многоядерных системах, так как там производительность упирается в память. Но, возможно, снизит потребление электроэнергии, что тоже неплохо.

И всё это нужно совместить в одном алгоритме, что может быть непростой задачей.

Теги:
+2
Комментарии0
ЕЖЕДНЕВНЫЙ ХАБР | 12 АВГ 2026
Охват76K

Мир, рассчитанный на рост, заканчивается

Некоторые графики объясняют происходящее лучше, чем десяток книг с прогнозами. Вот, например.

Это структура демографической нагрузки в Европе с 1950 года. В 1950-м на сто человек трудоспособного возраста приходился 41 ребёнок и 12 пожилых. В 2023-м - 24 ребёнка и 31 пожилой. Сама нагрузка почти не сдвинулась: 53 иждивенца тогда, 55 сейчас. Перевернулась её структура.

Раньше большинство тех, кого содержало работающее общество, только собирались войти в экономику. Теперь всё большая доля иждивенцев из неё, наоборот, выходит. За этим сдвигом проявляется смена модели, на которой держится почти всё, что мы считаем устройством нормальной жизни.

Мир, рассчитанный на рост, заканчивается

Публикации