TwiddleLab / Код / Алгоритмы в движении
Гонка алгоритмов
Что ты узнаешь
- Бенчмарк устраивает гонку программ на одних данных, одного размера, с одним счётчиком.
- Какая сортировка победит, зависит от трассы: вставки любят почти отсортированные данные, выбору всё равно, слияние побеждает при большом n.
- Меняй одно за раз, иначе гонка ничего не скажет. ИИ-модели сравнивают так же.
Как идёт урок
Какая сортировка побеждает? Зависит от трассы.
Первая ставка: кто победит на почти отсортированной трассе?
Четыре трассы, два гонщика, по 20 чисел.
Короткий столбик финиширует первым. Устрой гонку.
Меняй размер и трассу.
Попробуй хотя бы три настройки.
Бенчмарки.
Бенчмарк это гонка программ: одни данные, один размер, один способ счёта.
Запускай на нескольких трассах: случайная, отсортированная, перевёрнутая, почти отсортированная. Одна трасса может спрятать слабость.
Теперь собери своих гонщиков. У каждого есть счётчик steps.
Гонщик 1: сортировка вставками со счётчиком шагов.
Один шаг на карту плюс один на сдвиг.
Гонщик 2: сортировка выбором со счётчиком шагов.
Один шаг на сравнение.
Устрой гонку двух гонщиков на всех четырёх трассах.
Твой код запускается по-настоящему, по 20 чисел на трассу.
Прочитай результаты: кто победил на каждой трассе?
Нажми на победителя в каждой строке, потом «Проверить».
На перевёрнутых данных каждая пара не по порядку, поэтому вставки делают все 190 сдвигов плюс 19 взглядов: 209 против 190 у выбора.
Кто-то выложил такую гонку: вставки разгромили выбор. Что не так?
Нажимай на фишку трассы, чтобы менять данные этого гонщика, пока гонка не станет честной.
Испытание: когда сортировка слиянием берёт верх?
Слияние против вставок на случайных данных. Найди наименьшее n, начиная с которого слияние побеждает. 5 тестов.
Сортировка вставками на перевёрнутом списке из 100. Сколько сдвигов?
Каждый сдвиг исправляет ровно одну пару не по порядку. В перевёрнутом списке таких все 100 x 99 / 2 = 4950.
Моя гонка сортировок.
Твоя таблица от твоих гонщиков. Нажми на трассу, чтобы повторить её.
Предыдущий урок: Жадный выбор · Часть курса: Алгоритмы в движении
Уроки интерактивные и работают на JavaScript. Включи его, чтобы играть.