Analýza algoritmů

Analýza algoritmů je v matematické informatice určení rozsahu výpočetních prostředků potřebných k vykonání algoritmu. Jako primární kritéria náročnosti algoritmu se volí doba běhu a použitý paměťový prostor. Většina algoritmů je navržena tak, že mohou přijímat vstup o libovolné délce. Nákladnost (složitost) algoritmu je obvykle vyjádřena jako matematická funkce, která na základě délky vstupu určí časovou a paměťovou složitost výpočtu.

Obvykle se pojem „analýza algoritmů“ používá pro teoretickou analýzu chování algoritmu v závislosti na velikosti dat, viz asymptotická složitost. Jiná činnost je měření charakteristik konkrétního procesu, např. při profilování.

Analýza algoritmů je důležitá součást obecnější teorie složitosti, která poskytuje teoretické odhady potřebných zdrojů pro provedení jakéhokoli algoritmu, který řeší určitý výpočetní problém. Tyto odhady mohou poskytnout užitečná vodítka pro hledání efektivních algoritmů. Jestliže chceme algoritmy analyzovat, potřebujeme jazyk pro popis algoritmů (zdrojový kód nebo pseudokód) a výpočetní model. Výsledkem analýzy je obvykle funkce, která poskytuje odhad doby, po kterou se bude daný algoritmus vykonávat. Jejím parametrem (n) je velikost vstupních dat.

Doba běhu algoritmu v praxi závisí na mnoha faktorech. Je zřejmé, že výkonnější počítač při stejném vstupu provede daný algoritmus rychleji. Další úskalí spočívá v tom, jak se vlastně tento čas měří. Při opakování měření se může stát, že získáme rozdílné údaje doby běhu i pro zcela stejné vstupní hodnoty. Zvláště výrazný bývá tento rozdíl u malých časů. Výsledné hodnoty se proto počítají jako aritmetický průměr z několika měření. Praktické experimenty mají tato hlavní omezení:

  • Experimenty je možné z časového hlediska provést jen s určitým souborem dat.
  • Je těžké udělat porovnání dvou algoritmů – znamená to experimentovat za identických podmínek.
  • Je nutné algoritmus implementovat a provést experimenty – vyjádřit v nějakém programovacím jazyce.

Analýza algoritmů je v praktické informatice velmi důležitá, protože použití neefektivního algoritmu může významně ovlivnit výkon a stabilitu systému. Například u aplikací, u kterých je důležitá rychlost, může dlouhé čekání na výsledek způsobit, že získaná data budou již zastaralá a zbytečná. Tento problém byl aktuální především v dobách, kdy počítače dosahovaly velmi omezených výkonů a strojový čas byl velmi drahý.

Reference

V tomto článku byl použit překlad textu z článku Analysis of algorithms na anglické Wikipedii.


Zdroj datcs.wikipedia.org
Originálcs.wikipedia.org/wiki/Analýza_algoritmů
Zobrazit sloupec 

Kalkulačka - Výpočet

Výpočet čisté mzdy

Důchodová kalkulačka

Přídavky na dítě

Příspěvek na bydlení

Rodičovský příspěvek

Životní minimum

Hypoteční kalkulačka

Povinné ručení

Banky a Bankomaty

Úrokové sazby, Hypotéky

Směnárny - Euro, Dolar

Práce - Volná místa

Úřad práce, Mzda, Platy

Dávky a příspěvky

Nemocenská, Porodné

Podpora v nezaměstnanosti

Důchody

Investice

Burza - ČEZ

Dluhopisy, Podílové fondy

Ekonomika - HDP, Mzdy

Kryptoměny - Bitcoin, Ethereum

Drahé kovy

Zlato, Investiční zlato, Stříbro

Ropa - PHM, Benzín, Nafta, Nafta v Evropě

Podnikání

Města a obce, PSČ

Katastr nemovitostí

Katastrální úřady

Ochranné známky

Občanský zákoník

Zákoník práce

Stavební zákon

Daně, formuláře

Další odkazy

Auto - Cena, Spolehlivost

Registr vozidel - Technický průkaz, eTechničák

Finanční katalog

Volby, Mapa webu

English version

Czech currency

Prague stock exchange


Ochrana dat, Cookies

 

Copyright © 2000 - 2024

Kurzy.cz, spol. s r.o., AliaWeb, spol. s r.o.