Как оценить, быстрый ли алгоритм
Простые ориентиры, которые помогают заметить медленный код заранее.
Считайте, сколько раз повторяется работа
Главный вопрос — сколько действий выполнит алгоритм при росте данных. Один проход по списку — это по действию на элемент, вполне быстро. Если же внутри цикла спрятан ещё один цикл по тем же данным, действий становится квадратично больше, и на больших объёмах это ощутимо тормозит.
Вложенные циклы — красный флаг
Вложенный цикл, сравнивающий каждый элемент с каждым, — частая причина медленного кода. Иногда без него не обойтись, но нередко ту же задачу решают умнее: с помощью словаря для быстрых проверок или предварительной сортировки. Заметив вложенный перебор, спросите себя, нельзя ли иначе.
Не оптимизируйте раньше времени
Сначала — работающее и понятное решение, потом — ускорение, если оно реально нужно. На маленьких данных даже медленный алгоритм отработает мгновенно. Оценивать скорость важно там, где данных много или код запускается часто. Здравый смысл важнее преждевременной погони за микросекундами.
Частые вопросы
Нужно ли новичку измерять время выполнения? Полезно иногда запускать на больших данных и сравнивать. Но сначала учитесь прикидывать число действий в уме.
Как натренировать чутьё на скорость? Сравнивая подходы к одной задаче. Пошаговую логику удобно отрабатывать в игре Дрон Кодер.
Начать игру бесплатно