Никита Нагорнов. O(n) проиграл O(n log n): ваш алгоритм не выбирал процессор, на котором работает
CodeFest Russia
0:00 / 0:00
Никита Нагорнов. O(n) проиграл O(n log n): ваш алгоритм не выбирал процессор, на котором работает
280 просмотров · 7 дней назад
CodeFest Russia
14,8 тыс. подписчиков
280 просмотров · 7 дней назад
Почему ожидаемо линейный алгоритм может проиграть сортировке?
На примере дедупликации разберём, как кэши, аллокации, распределение данных и выбранное планировщиком ядро меняют победителя. Один C++20-код испытаем на x86-64, Apple Silicon и мобильных ARM64-устройствах.
Big-O описывает рост, но не время конкретного запуска.
sort + unique иногда быстрее хеш-таблицы благодаря последовательной памяти.
Даже две хеш-таблицы с одинаковой сложностью могут отличаться в разы.
На смартфоне результат зависит от типа ядра, частоты и нагрева.
Лучший алгоритм определяется не названием, а crossover point на целевом устройстве.
Сайт - https://2026.hardfest.ru/
Презентация — https://disk.360.yandex.ru/d/d6kakNqs...