You are on page 1of 11

1.

Algoritmus - vlastnosti,
efektivita, optimalizace
Adam Ferencz
Původ
9.stol
Zkomolená latinská podoba jména arabského
matematika Abú Abd Alláh Muhammad Ibn Músá
al-Chórezmí Abú Dža'far
zabýval se aritmetikou a algebrou

Obr 1.
Stránka ze spisu Al-
Kitab al-mukhtasar
fi hisab al-jabr wa-l-
muqabala.
Algoritmus
popis práce
Algoritmus je sekvence instrukcí na vykonání. Je to schématický postup
řešení určitého druhu problému pomocí konečného množství přesně
definovaných kroků.
Např. počítačový program, návod/postup, kuchyňský recept
Vývojový diagram
Schéma průběhu algoritmu
Grafické značny předepsaného tvaru

Obr 2 Algoritmus
přechodu
křižovatky, řízené
semaforem

Obr 3 Eukleidův algoritmus


Zápis programovacím jazykem
Na obr je Eukleiův algoritmus v C+
+, který byl zapsán ve vývojovém
diagramu na předchozím snímku.
Vlastnosti
Konečnost:
Algoritmus každý vstup vyřeší v konečném počtu jednotlivých kroků.
Obecnost:
Algoritmus neřeší jeden konkrétní problém, ale obecnou třídu obdobných problémů
Určitost (Determinovanost):
Každý krok algoritmu je jednoznačně definovaný, pro každý vstup dostaneme vždy
stejný výstup (nehraje zde roli náhoda).
Korektnost:
Algoritmus skončí libovolný (korektní) vstup správným výsledkem
Vstup a výstup:
Zadání a odpověď
Algoritmy – ukázka vlastností

Algoritmus bez konce


Efektivita
Čas potřebný na nalezení výsledku
Paměť, kterou bude potřebovat
Určuje se tzv. asymptotická složitost (nejhorší možný případ)
Bubblesort – O(n2), ale heapsort - O(n.logn) (časová)
Optimalizace
Optimalizace je změna( vylepšení, rozšíření, zjednodušení) algoritmu,
která vede k jeho vyšší efektivitě (menší časové a/nebo paměťové
složitosti)
Snažíme se omezit počet kroků jen na ty nejnutnější tak abychom
nezměnili výsledek.
Příklad optimalizace
Random sort (stupid sort): prvky seřadíme náhodně a poté ověříme
pořadí, opakujeme dokud pořadí nesedí
Nejhorší časová složitost: O(∞), je tedy velmi neefektivní
pozn. průměrná časová složitost je O((n+1)!) a nejmenší O(n)
OPTIMALIZACE: Bubble sort: n-krát porovnáme všechny sousední
dvojice prvků a případně je prohodíme
Časová složitost: O(n2)
Konstantní paměťová složitost (stejně jako random sort)
Zdroje
Obr 1 - Autor: Muhammad ibn Musa al-Khwarizmi – John L. Esposito.
The Oxford History of Islam. Oxford University Press. ISBN 0195107993.,
Volné dílo, https://commons.wikimedia.org/w/index.php?curid=716423
Obr 2 - http://www.ivt.mzf.cz/algoritmizace-a-programovani/uvod
-do-algoritmu/5-vyvojove-diagramy-k-slovne-zapsanym-algoritmum/
Obr 3 – prezentace učitele

You might also like