Как найти временную сложность алгоритма
The Question
Как найти временную сложность алгоритма?
What have I done before posting a question on SO ?
Я прошелэтот, этот и много других ссылок
Но не там, где я смог найти четкое и прямое объяснение того, как рассчитать сложность времени.
What do I know ?
Скажем для кода так же просто, как показано ниже:
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 i=0; Это будет выполнено толькоonce.
The time is actually calculated to i=0
а не декларация.
i < N; Это будет выполненоN+1 раз
i++ ; Это будет выполненоN раз
Таким образом, количество операций, необходимых для этого цикла
{1+(N+1)+N} = 2N+2
Примечание: это все еще может быть неправильно, так как я не уверен в своем понимании расчета сложности времени
What I want to know ?
Итак, эти небольшие базовые вычисления, я думаю, я знаю, но в большинстве случаев я видел сложность времени как
O(N), O(n2), O(log n), O(n!).... и многоДругой,
Может ли кто-нибудь помочь мне понять, как можно вычислить временную сложность алгоритма? Я уверен, что есть много новичков, таких как я, которые хотят это знать.