Быстро или медленно: насколько умный твой план?
Простое знакомство с тем, почему одни решения намного быстрее других
- простыми словами объяснить, что такое «эффективность»,
- отличать быстрый план от медленного,
- читать простой график роста и называть три скорости: та же работа, по одному и намного больше.
1. Один ответ, разная скорость
Представь, что ты рассыпал коробку из 100 карандашей. Тебе нужно найти красный. Ты можешь брать карандаши по одному и проверять цвет каждого. Или друг даст тебе коробку, где карандаши уже разложены по цветам, и ты сразу идёшь к красным.
Оба плана находят красный карандаш. Но один требует намного больше шагов, чем другой. В программировании набор понятных шагов, решающий задачу, называют алгоритмом. У одной и той же задачи может быть быстрый алгоритм и медленный. Эффективность — это про то, сколько работы должен сделать план.
2. Считай шаги, а не секунды
Быстрый и медленный компьютеры справятся за разное время, поэтому секунды могут нас обмануть. Вместо этого программисты считают шаги — сколько маленьких действий делает план. Подсчёт шагов работает на любом компьютере.
Важный вопрос не «сколько времени на 10 вещей?». Он такой: «что будет, когда вещей станет намного больше?» Если карандашей 10, проверять по одному — нормально. Если карандашей 1 000 000, «по одному» может занять весь день, а умный план всё равно закончит в мгновение.
У особого способа программистов говорить о том, «как растёт число шагов, когда растут данные», есть прозвище: Big-O (Большое О). Никакой сложной математики не нужно — думай об этом как о ярлыке, который говорит быстро, средне или медленно, когда всё становится больше.