Пояснительная бригада: мем про спортивное программирование

 

В спортивном программировании (и зачастую на собеседованиях) стоит задача написать максимально эффективный код, оценивая его алгоритмическую сложность — то есть зависимость скорости работы программы от размера входных данных.

Условно говоря, если у тебя алгоритм обрабатывает 100 единиц данных за 1 секунду, то сколько секунд ему понадобится на 1000 единиц? В идеале — чтобы это было не 10 секунд, а, например, 3. Ещё бывает, что данных стало в 10 раз больше, а алгоритм обрабатывает их в 25 раз дольше. Вот это дурной знак. 

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

Но квадратичной сложности всё же лучше избегать.

Лёша Эльнатанов, наставник на курсе по Python

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме