Вопрос
Как найти временную сложность алгоритма?
Что я сделал до публикации вопроса о SO?
Я прошел этот, этот и многие другие ссылки
Но нет, где я смог найти ясное и прямое объяснение того, как рассчитать сложность времени.
Что я знаю?
Скажите, что код такой же простой, как ниже:
char h = 'y'; // This will be executed 1 time
int abc = 0; // This will be executed 1 time
Произнесите цикл, подобный приведенному ниже:
for (int i = 0; i < N; i++) {
Console.Write('Hello World !');
}
int я = 0; Это будет выполняться только один раз.
Время фактически вычисляется до i=0
, а не декларации.
я < N; Это будет выполнено N + 1 раз
я ++; Это будет выполнено N раз
Таким образом, количество операций, требуемых этим циклом, равно
{1+ (N + 1) + N} = 2N + 2
Примечание. Это может быть неправильно, поскольку я не уверен в своем понимании при вычислении временной сложности.
Что я хочу знать?
Хорошо, поэтому эти небольшие базовые вычисления, я думаю, знаю, но в большинстве случаев я видел временную сложность, поскольку
O (N), O (n2), O (log n), O (n!).... и многие другие,
Может кто-нибудь помочь мне понять, как рассчитать сложность времени алгоритма? Я уверен, что есть много новичков, таких как я, желающих это узнать.