Я предполагаю, что вы хотите спросить «когда мне следует рассчитывать сложность времени?», Просто чтобы избежать технических подробностей о Тэте, Омеге и Биг-О.
Правильное отношение к догадке это почти всегда.Заметные исключения включают фрагмент кода, который вы хотите запустить только один раз, и вы уверены, что он никогда не получит больший ввод.
Акцент на догадках заключается в том, что не имеет большого значения, является ли сложность постоянной или логарифмической.Существует также небольшая разница между O (n ^ 2) и O (n ^ 2 log n) или между O (n ^ 3) и O (n ^ 4).Но есть большая разница между постоянным и линейным.
Основной целью догадки является ответ на вопрос: «Что произойдет, если я получу в 10 раз больший вклад?».Если сложность постоянна, ничего не происходит (по крайней мере, в теории).Если сложность линейная, время выполнения увеличится в 10 раз.Если сложность квадратична или больше, у вас начнутся проблемы.Вторичной целью догадки является ответ на вопрос: «Какой самый большой ввод я могу обработать?». Опять же, квадратичное значение даст вам максимум 10000. O (2 ^ n) заканчивается около 25.
Это может показаться пугающим и отнимающим много времени, но на практике получить временную сложность кода довольно тривиально, поскольку большинство вещей либо постоянны, либо логарифмичны, либо линейны.