"Algoritmus je přesný návod či postup, kterým lze vyřešit daný typ úlohy. Pojem algoritmu se nejčastěji objevuje při programování, kdy se jím myslí teoretický princip řešení problému (oproti přesnému zápisu v konkrétním programovacím jazyce). Obecně se ale algoritmus může objevit v jakémkoli jiném vědeckém odvětví. Jako jistý druh algoritmu se může chápat i např. kuchařský recept."
Wikipedia
"Algoritmus je postupnost krokov, ktora zo vstupnych dat vygeneruje vystupne data, pozadovanych vlastnosti podla zadania problemu. Problem v tomto slova zmysle je uloha, ako zpracovat vstupne data na vystupne data s pozadovanymi vlastnostami. Instancia problemu je problem s konkretnymi datami, potrebnymi pre jeho riesenie."
prof. Tvrdik
Wiki dalej pekne zhrnuje aj vlastnosti algoritmu
- Konecnost
Algoritmus musi skoncit v konecnom pocte krokov.
- Obecnost
Algoritmus musi byt vseobecne pouzitelny pre ulohy rovnakeho typu, takze neriesi jeden problem, napriklad 3*7, ale riesi sucin dvoch cisel.
- Determinovanost
Kazdy krok musi byt mozne vykonat jednoznacne, tak aby sme pre kazdy vstup dostali vzdy rovnake vysledky
- Resultativnost
Jeho vystupom by malo byt riesenie problemu
- Elementarnost
Kroky by mali byt co najjednoduchsie
Algoritmus je korektny, ak skonci, ak pre kazdu instanciu problemu, skonci v konecnom case so spravnym vystupom. Vravime, ze algoritmus A riesi problem P.
Sposob navrhu algoritmu zavisi na probleme, ktory riesime. Zvacsa sa pouziva jeden z troch typov pristupu
- top-down
riesenie delime na podproblemy a podproblemy na pod-pod-problemy atd, az kym nedojdeme k natolko elementarnym problemom, ze uz nemame ako delit.
Pri dynamickom programovni si zapamatame riesenie nadproblemov a ak sa nam hodia na riesenie nizsich problemov, tak ich pouzijeme.
- bottom-up
z elementarnych krokov vytvarame prostriedky, ktore nam umoznia zvladnut dany problem
- kombinacia oboch vyssie uvedenych (?)
"Kazdy algoritmus ma svoju zlozitost"
Marko Berezovsky - the master of teaching
Algoritmy mozme rozdelit na
- rekurzivne
- heuristicke
- probabilisticke
- hladove
- geneticke (skutocne typ algoritmu?)
- pararelne (skutocne typ algoritmu?)
- este by ma zaujimalo, ako sa volaju tie, ktore nie su ani jedno z uvedenych ...