zložitosť algoritmu
-
tina.olbreitova
Amateur
- Príspevky: 31
- Registrovaný: 07 dec 2009, 19:41
zložitosť algoritmu
viete mi poradiť podľa čoho píšem zložitosť algoritmu???
mám napr. rovnicu x3(n)2 + x4 bude zložitosť n4???
mám napr. rovnicu x3(n)2 + x4 bude zložitosť n4???
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
-
tina.olbreitova
Amateur
- Príspevky: 31
- Registrovaný: 07 dec 2009, 19:41
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
-
tina.olbreitova
Amateur
- Príspevky: 31
- Registrovaný: 07 dec 2009, 19:41
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
aby si mohla rátať časovú zložitosť, musíš si stanoviť nejakú operáciu ktorá bude vyjadrovať základnú časovú zložitosť. Väčšinou sa takouto operáciou bere priradenie, a preto to má zmysel rátať v algoritmoch (kde sú cykly, podmienky..). Vo výraze je časová zložitosť vždy konštantná, lebo pre ľubovolné n získaš výsledok na jeden krok (vypočítaním výrazu). Skús presne napísať ten výraz aj so zadaním (možno to n v zátvorke značí niečo iné ako n v zátvorke
). Ak sú tam nejaké exponenty, alebo indexy čo nie je jasné z tohto zápisu tak radšej naskenuj originál zadanie a daj ako obrázok
-
tina.olbreitova
Amateur
- Príspevky: 31
- Registrovaný: 07 dec 2009, 19:41
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
no vidíš, našlo sa kde je pes zakopaný
vymyslela si zlý príklad, a konečne sa (po zadaní skutočného príkladu) dostávame k tomu že zložitosť sa počíta pri algoritmoch.
On2 (lepšie zapísané On^2 aby bolo jasné že dvojka je mocnina) znamená že to má kvadratickú zložitosť. Čiže pri zvýšení n o 2 sa zložitosť zvýši o exponenciálne na 4. Základom je vždy si uvedomiť (alebo napísať) algoritmus z ktorého to buď je hneď vidno alebo si to vyjadríš matematicky. Obávam sa že aj jedno aj druhé môže byť problém, hlavne pre mňa ak to má byť štýlom "doučovania cez diskusné forum"
On2 (lepšie zapísané On^2 aby bolo jasné že dvojka je mocnina) znamená že to má kvadratickú zložitosť. Čiže pri zvýšení n o 2 sa zložitosť zvýši o exponenciálne na 4. Základom je vždy si uvedomiť (alebo napísať) algoritmus z ktorého to buď je hneď vidno alebo si to vyjadríš matematicky. Obávam sa že aj jedno aj druhé môže byť problém, hlavne pre mňa ak to má byť štýlom "doučovania cez diskusné forum"
-
tina.olbreitova
Amateur
- Príspevky: 31
- Registrovaný: 07 dec 2009, 19:41
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
-
neutronmind
Expert
- Príspevky: 189
- Registrovaný: 05 aug 2008, 14:17
Ak f(n) je funkcia udavajuca casovu zlozitost algoritmu v zavislosti od velkosti vstupu n, piseme f(n) = O(g(n)) prave vtedy, ked f(n) <= c.g(n) pre nejaku konstantu c a vsetky n vacsie ako nejake n_0. O(g(n)) je v podstate mnozina funkcii, ktore rastu pomalsie ako g(n). Jednoducho povedane, ak f(n) = O(g(n)), tak graf funkcie g(n) lezi nad grafom funkcie f(n), f(n) je teda zhora ohranicena funkciou g(n). Je to teda nejaky horny odhad rastu funkcie - garantujeme, ze algoritmus s cas.zlozitostou O(g(n)) spravi najviac c.g(n) krokov. Plati teda napr. n^2 = O(n^2), n^42 = O(n^47) atd... Lubovolny polynom stupna k patri do O(n^k).
-
tina.olbreitova
Amateur
- Príspevky: 31
- Registrovaný: 07 dec 2009, 19:41