Jak znaleźć złożoność czasową algorytmu
Pytanie
Jak znaleźć złożoność czasową algorytmu?
Co zrobiłem przed wysłaniem pytania na temat SO?
Przeszłamto, to i wiele innych linków
Ale nie, gdzie udało mi się znaleźć jasne i proste wyjaśnienie, jak obliczyć złożoność czasu.
Co ja wiem ?
Powiedz kod tak prosty, jak poniższy:
char h = 'y'; // This will be executed 1 time
int abc = 0; // This will be executed 1 time
Powiedz o pętli takiej jak poniżej:
for (int i = 0; i < N; i++) {
Console.Write('Hello World !');
}
int i = 0; Zostanie to wykonane tylkopewnego razu. Czas jest rzeczywiście obliczonyi=0
a nie deklaracja.
i <N; Zostanie to wykonaneN + 1 czasy
i ++; Zostanie to wykonaneN czasy
Tak więc liczba operacji wymaganych przez tę pętlę
{1+ (N + 1) + N} = 2N + 2
Uwaga: To wciąż może być błędne, ponieważ nie jestem pewien, czy rozumiem złożoność czasu
Co chcę wiedzieć ?
Ok, więc myślę, że te małe podstawowe obliczenia wiem, ale w większości przypadków widziałem złożoność czasu
O (N), O (n2), O (log n), O (n!).... i wieleinny,
Czy ktoś może mi pomóc zrozumieć, jak obliczyć złożoność czasową algorytmu? Jestem pewien, że jest wielu początkujących, takich jak ja, którzy chcą to wiedzieć.