NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Lekce 4 - Časová složitost algoritmů a jejich odhad složitosti

V minulé lekci, Třídy časové složitosti algoritmů a jejich využití, jsme se podívali na různé třídy časové složitosti algoritmů, jejich využití a určení složitosti jednotlivých algoritmů.

V dnešním tutoriálu o teorii algoritmů se blíže podíváme na časovou složitost algoritmů a naučíme se odhadnout jejich složitost.

Ukážeme si, jak funguje faktoriálová časová složitost, dále také časová složitost grafových algoritmů, a také zkusíme odhadnout časovou složitost dvou příkladů konkrétního algoritmu.

Faktoriálová časová složitost

Pokud si vzpomeneme na kombinatoriku z hodin matematiky, tak nás může napadnout, že faktoriál bude souviset s vyzkoušením úplně všech možností.

Pro n = 1 je to 1 operace. Pro n = 5 je to již ale 720 operací. Pro n = 10, tedy např. pro pole o deseti prvcích, musíme provést 3628800 operací. A pro n = 15 je to 1307674368000 operací. Většinou se k těmto číslům dostaneme tak, že zkoušíme všechny možnosti. Proto se tedy snažíme vyvarovat této časové složitosti.

Pro problém setřídění pole si můžeme představit, že by program místo nějakých smysluplných operací zkoušel čísla různě prohazovat do vyčerpání všech kombinací. Některá z kombinací by splňovala podmínku setříděného pole.

Faktoriálovou složitost, O(n!), bychom dostali, pokud bychom


 

...konec náhledu článku...
Pokračuj dál

Znalosti v hodnotě stovek tisíc získáš za pár korun

Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.

Koupit tento kurz

Koupit všechny aktuálně dostupné lekce s funkcí odevzdávání úloh a certifikátem za pouhých 200 Kč
Aktuální stav konta 0 Kč
Koupí tohoto balíčku získáš přístup ke všem 7 článkům (6 lekcí, test) tohoto kurzu.

Před koupí tohoto článku je třeba koupit předchozí díl

Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.

Co od nás v dalších lekcích dostaneš?
  • Neomezený a trvalý přístup k jednotlivým lekcím.
  • Kvalitní znalosti v oblasti IT.
  • Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.

Popis článku

Požadovaný článek má následující obsah:

V tutoriálu o teorii algoritmů se blíže podíváme na časovou složitost algoritmů a naučíme se odhadnout jejich složitost.

Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.

Článek pro vás napsal Ondřej Michálek
Avatar
Autor se věnuje teoretické informatice. Ve svých volných chvílích nepohrdne šálkem dobrého čaje, kaligrafickým brkem a foukací harmonice.
Aktivity