Skip to content

Commit

Permalink
[ivt] 19 done
Browse files Browse the repository at this point in the history
  • Loading branch information
Headary committed Jan 19, 2022
1 parent aa155e4 commit 82e1b76
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 10 deletions.
34 changes: 24 additions & 10 deletions ivt/19-algoritmus.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
- matematický -- zápis pomocí veličin a rovnic
- v programovacím jazyku -- vyjádření v programovacím jazyce pomocí funkcí, keywords, proměnných\dots

\fullfig{19-flowchart}[Grafický diagram algoritmu]
\fullfig[width=0.4\textwidth]{19-flowchart}[Grafický diagram algoritmu]

## Rozdělení algoritmů
### Podle implementace
Expand Down Expand Up @@ -112,12 +112,26 @@
- při nekonečném čase nalezení optimálního řešení
- local search, tabu search, genetické algoritmy

### Podle komplexnosti
#### Komplexnost času
- konstantní čas-- $O(1)$
- logaritmický čas -- $O(\log n)$
- lineární čas -- $O(n)$
- polynomiální čas -- $O(n^2), O(n^3)$
- exponenciální čas -- $O(x^n)$

#### Komplexnost paměti
## Komplexnost algoritmu
- vlastnost udávající výpočetní náročnost
- především sledován čas potřebný na spuštění, někdy i velikost potřebné paměti
- vyjádřeno pomocí Big-O notace
- vyjádření nejhorší/nejdelší kalkulace
- zápis pomocí matematické funkce; $n$ -- počet prvků
- brán v potaz pouze nejrychleji rostoucí komponent
- z předpokladu $n\rightarrow\infty$
- $O(n^2+n)=O(n^2)$
- související veličiny
- big-omega $\Omega(n)$ -- nejlepší případ
- bit-theta $\Theta(n)$ -- průměrný případ

\fullfig[width=16cm]{19-bigO}[Porovnání průběhu jednotlivých funkcí]

### Příklady komplexnosti
- konstantní čas -- $O(1)$ -- získání array elementu, hledání v hashmapě
- logaritmický čas -- $O(\log n)$ -- binary search
- lineární čas -- $O(n)$ -- projití všech prvků v poli
- polynomiální čas -- $O(n^2), O(n^3)$ -- bubble sort ($O(n^2)$)
- exponenciální čas -- $O(x^n)$ -- brute-force search

\fullfig{19-sort-complexity}[Porovnání složitosti řadících algoritmů]
16 changes: 16 additions & 0 deletions ivt/graphics/19-bigO.src.plt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
set xlabel '$n$'
set ylabel 't'

set samples 1000

set xrange[0:100]
set yrange[0:500]

plot\
1 tit '$O(1)$' lw 4,\
x tit '$O(n)$' lw 4,\
log(x) tit '$O(\log n)$' lw 4,\
x*log(x) tit '$O(n\log n)$' lw 4,\
x**2 tit '$O(n^2)$' lw 4,\
2**x tit '$O(2^n)$' lw 4,\
gamma(x+1) tit '$O(n!)$' lw 4
Binary file added ivt/graphics/19-sort-complexity.src.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 82e1b76

Please sign in to comment.