6. Výpočetní složitost algoritmů, lineární, polynomiální a exponenciální složitost Flashcards

1
Q

Výpočetní složitost algoritmů

A

zabývá se měřením a analýzou náročnosti algoritmů vzhledem k jejich vstupu

Výpočetní složitost algoritmů popisuje, jak se mění časová a prostorová náročnost algoritmu v závislosti na velikosti vstupních dat

Snaha zjistit, jak rychle daný algoritmus dokáže vyřešit jistý problém v závislosti na velikosti vstupu

Výpočetní složitost je důležitá, protože umožňuje předpovědět, jak dlouho bude algoritmus trvat

To je klíčové pro návrh a optimalizaci algoritmů pro různé aplikace

Výběr správného algoritmu s ohledem na složitost je důležitým faktorem při řešení problémů v oblasti výpočetní techniky

Snažíme se najít algoritmy s co nejnižší složitostí, aby nám naše programy poskytly co nejrychlejší a nejefektivnější řešení

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Lineární složitost

A

Lineární složitost algoritmu znamená, že časová náročnost roste přímo úměrně s velikostí vstupu

To znamená, že pro každý prvek vstupu musíme vykonat přibližně stejný počet operací

Lineární algoritmy jsou velmi efektivní a často se používají v praxi, protože mají časovou náročnost, která roste poměrně pomalu s velikostí vstupu

Lineární algoritmy mohou být implementovány pomocí cyklů nebo rekurze

Časová náročnost lineárních algoritmů může být snížena použitím různých optimalizací, jako jsou například hashovací tabulky nebo binární vyhledávání

Příkladem algoritmu s lineární složitostí může být například vyhledání prvku v seřazeném seznamu nebo projití pole a výpočet sumy prvků

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Polynomiální složitost

A

Polynomiální složitost algoritmu znamená, že časová náročnost roste s mocninou velikosti vstupu

To znamená, že čím více prvků má vstup, tím déle bude algoritmus trvat (rychlost růstu není tak vysoká jako u exponenciální složitosti)

Polynomiální algoritmy jsou obvykle efektivní a používají se v mnoha aplikacích

Polynomiální algoritmy pracují pomocí cyklů nebo iterativních funkcí a provádějí počet operací, který je přibližně roven mocnině vstupní velikosti

Příkladem algoritmu s polynomiální složitostí může být algoritmus na sčítání matic nebo řešení lineárních rovnic

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Exponenciální složitost

A

Exponenciální složitost algoritmu znamená, že časová náročnost roste exponenciálně s velikostí vstupu

To znamená, že čím více prvků má vstup, tím déle bude algoritmus trvat

Exponenciální algoritmy jsou obvykle velmi pomalé a náročné na zdroje

Exponenciální algoritmy obvykle pracují rekurzivně a pro každý prvek vstupu musí vykonat mnoho operací

Protože časová náročnost exponenciálních algoritmů se zvyšuje velmi rychle s velikostí vstupu, jsou často používány pouze pro malé vstupy nebo jsou nahrazovány efektivnějšími algoritmy

Příkladem algoritmu s exponenciální složitostí může být například hledání nejdelšího společného podřetězce v řetězcích nebo hledání všech možných permutací prvků v seznamu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly