Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Ahoj mám takový problém stále nemůžu pochopit jak se počítají složitosti algoritmů. Základní pravidlo znám, když jsou cykly vnořené násobí se, když jsou cykly pod sebou tak se sčítají.
Cyklus for má složitost O(n), while ... o (log n)
Tohle všechno vím, ale nevím si rady, když mám více cyklů a podle různých iterací nevím jak poznat složitost.
Děkuji
Offline
↑ Matiniela:
Ahoj, asi trochu pozdě, ale i tak odpovím. Cyklus for je v podstatě totožný s while, takže nechápu proč by měli mít jinou složitost.
V následujícím příkladu je složitost O(N) (počet průchodů cyklem je N)
for (int i = 0; i < N; i++) "příkazy" = int i = 0 while(i < N) "příkazy" i++
Offline
↑ Matiniela:
Ahoj, kdo ti řekl, že while cyklus má složitost o(log n)? A co třeba cyklus "while (true) {..}" Je to právě while cyklus, který činí informatiku netriviální.
Offline