01_algoritmy_uvod
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
Úvod – terminologie, motivace
Terminologie se může v různých zdrojích různit. Proto je potřebné přistupovat při studiu z různých
zdrojů s opatrností.
Tento kurz si dává za cíl seznámit studenty s nejběžnějšími algoritmy.
Jsou prezentovány jednodušší formy algoritmů – složitější, optimalizované formy jsou většinou nad
časové možnosti tohoto kurzu (z hlediska srozumitelného vysvětlení a pochopení, i když se jedná o
„jednoduchý“ vzorec nebo návod).
Pomocí seznámení s algoritmy a jejich realizací na cvičeních by mělo dojít k zažití programovacích
postupů a technik.
Vybrané algoritmy jsou uvedeny k realizaci na cvičeních. Slouží také k procvičení programování
v jazyce C. Proto jsou v tomto textu také uvedeny některé vlastnosti jazyka C, které pokládám za
užitečné znát. Zároveň je text nutno chápat v kontextu jazyka C (pokud například tvrdím, že není
datový typ množina, potom to znamená, že nepatří mezi základní datové typy v C, ale v jiném
jazyce být může, stejně tak jako je možné ho v C naprogramovat).
Jako zdroj pro studium je možné používat uvedená hesla na wikipedii.
Algoritmy
Algoritmus – návod, postup řešení.
Požadavky na algoritmy
- konečnost
- obecnost, univerzálnost – počítá s proměnnými vstupy (tj. není pouze jednorázově použitelný)
- výstup – má konkrétní výsledek, cíl, postup
- elementárnost, determinovanost – skládá se z konečného počtu definovaných operací
Postup návrhu
- Rozdělováním algoritmu na jednodušší - shora dolů
- Spojováním dílčích řešení – zdola nahoru
Typy algoritmů
- rekurze
- pravděpodobnost – využívají náhody pro řešení (náhodný výběr – vstupů, postupů, směrů