Зачем мне это?!

Может показаться, что оценка вычислительной сложности алгоритма — навык довольно академический, не нужный нигде за рамками экзамена по алгоритмам.

Однако, опытные инженеры используют этот навык ежедневно, не задумываясь, на уровне рефлексов. Делают они это для предварительного грубого анализа кода, который читают, пишут или только собираются написать.

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

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

Комментарии

Bekzat Samatov
Bekzat Samatov
Стоит ли изучить сперва это прежде чем приступать к углублению языка
I
ikudza
Стоит, так как это учит оценивать сложность самого алгоритма, а не его реализацию
Войдите, чтобы оставить комментарий
Работает форматирование: **жирный текст**, __курсивный текст__, `код`, ```многострочный код```.