Algoritmus je presný návod ci postup, kterým lze vyrešit daný typ úlohy. Pojem algoritmu se nejcasteji objevuje pri
programování, kdy se jím myslí teoretický princip rešení problému (oproti presnému zápisu v konkrétním
programovacím jazyce). Obecne se ale algoritmus muže objevit v jakémkoli jiném vedeckém odvetví. Jako jistý druh algoritmu se muže chápat i napr. kucharský recept. V užším smyslu se slovem algoritmus rozumí takové postupy, které splnují nekteré silnejší požadavky:
Vlastnosti algoritmu
- Konecnost (finitnost)
- Každý algoritmus musí skoncit v konecném poctu kroku. Tento pocet kroku muže být libovolne velký (podle rozsahu a hodnot vstupních údaju), ale pro každý jednotlivý vstup musí být konecný. Postupy, které tuto podmínku nesplnují, se mohou nazývat výpocetní metody. Speciálním príkladem nekonecné výpocetní metody je reaktivní proces, který prubežne reaguje s okolním prostredím. Nekterí autori však mezi algoritmy zahrnují i takovéto postupy.
- Obecnost (hromadnost, masovost, univerzálnost)
- Algoritmus nereší jeden konkrétní problém (napr. „jak spocítat 3×7“), ale obecnou trídu obdobných problému (napr. „jak spocítat soucin dvou celých císel“), má širokou množinu možných vstupu.
- Determinovanost
- Každý krok algoritmu musí být jednoznacne a presne definován; v každé situaci musí být naprosto zrejmé, co a jak se má provést, jak má provádení algoritmu pokracovat, takže pro stejné vstupy dostaneme pokaždé stejné výsledky. Protože bežný jazyk obvykle neposkytuje naprostou presnost a jednoznacnost vyjadrování, byly pro zápis algoritmu navrženy programovací jazyky, ve kterých má každý príkaz jasne definovaný význam. Vyjádrení výpocetní metody v programovacím jazyce se nazývá program. Nekteré algoritmy ale determinované nejsou, pravdepodobnostní algoritmy v sobe mají zahrnutu náhodu.
- Výstup (resultativnost)
- Algoritmus má alespon jeden výstup, velicinu, která je v požadovaném vztahu k zadaným vstupum, a tím tvorí odpoved na problém, který algoritmus reší (algoritmus vede od zpracování hodnot k výstupu)
- Elementárnost
- Algoritmus se skládá z konecného poctu jednoduchých (elementárních) kroku.