Složitost algoritmu

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (Přidán odkaz na Algoritmus)
(Složitost jako míra pro srovnání algoritmů: Měření složitosti jako samostatná kapitola.)
Řádka 15: Řádka 15:
 
* ...
 
* ...
  
; Zjednodušení:
+
 
*Neměříme čas, ale počet operací (tím omezíme vliv HW).
+
== Měření složitosti ==
*Nepočítáme všechny instrukce
+
# ''Neměříme čas, ale počet operací!''
**obvykle počítáme pouze „významné“ (časově náročné) operace (počet porovnání, počet přístupů na disk.
+
#* Tím omezíme vliv konkrétního HW.
**Tím eliminujeme vliv použitého překladače, knihoven, jazyka,...
+
# ''Nepočítáme všechny dílčí operace!''
*Zajímají nás velká data, řádový růst (viz asymptotická složitost).
+
#* Obvykle počítáme pouze „významné“ (časově náročné) operace (počet porovnání, počet přístupů na disk).
*Zajímá nás maximální nebo průměrná složitost. (Eliminujeme vliv zadání.)
+
#* Tím eliminujeme vliv použitého překladače, knihoven, jazyka, procesorové architektury,...
 +
# ''Zajímají nás velká data, řádový růst!''
 +
#* Viz [[#Asymptotická složitost|asymptotická složitost]].
 +
#* Malé instance skončí v rozumném čase, i když se budou počítat neefektivně.
 +
# ''Zajímá nás maximální nebo průměrná složitost!''
 +
#* Tím eliminujeme vliv konkrétního zadání.
  
 
== Asymptotická složitost ==
 
== Asymptotická složitost ==

Verze z 25. 9. 2014, 10:20


Obsah

Složitost jako míra pro srovnání algoritmů

Hledáme nástroje pro porovnání efektivity algoritmů.

Rychlejší algoritmus → lepší algoritmus!
Problém — čas je ovlivněn


Měření složitosti

  1. Neměříme čas, ale počet operací!
    • Tím omezíme vliv konkrétního HW.
  2. Nepočítáme všechny dílčí operace!
    • Obvykle počítáme pouze „významné“ (časově náročné) operace (počet porovnání, počet přístupů na disk).
    • Tím eliminujeme vliv použitého překladače, knihoven, jazyka, procesorové architektury,...
  3. Zajímají nás velká data, řádový růst!
  4. Zajímá nás maximální nebo průměrná složitost!
    • Tím eliminujeme vliv konkrétního zadání.

Asymptotická složitost

Příklady růstu počtu operací
Úkol — Navrhněte algoritmus a odhadněte složitost

Související pojmy

Složitost problému
Maximální × průměrná složitost
Paměťová × časová složitost

Viz také

Zdroje

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje