0 / 1X36DSA 2005The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log.

Slides:



Advertisements
Podobné prezentace
Medians and Order Statistics Nechť A je množina obsahující n různých prvků: Definice: Statistika i-tého řádu je i-tý nejmenší prvek, tj., minimum = statistika.
Advertisements

Metody řazení s lineární časovou složitostí
013456… The Numbers Číslice The numbers we write are made up of algorithms, (1, 2, 3, 4, etc) called arabic algorithms, to distinguish them from.
TEORIE HER III. Hry a jejich bohové CO BYLO MINULE.
Proč se už nemůžeme vídat? Why can't we be seeing each other any more?
PB161 – Programování v jazyce C++ Objektově Orientované Programování
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
Název a adresa školy: Střední odborné učiliště stavební, Opava, příspěvková organizace, Boženy Němcové 22/2309, Opava Název operačního programu:OP.
O metodě konečných prvků Lect_6.ppt M. Okrouhlík Ústav termomechaniky, AV ČR, Praha Liberec, 2010 Pár slov o Matlabu a o zobrazení čísla na počítači.
OSNOVA: a) Příkazy pro větvení b) Příkazy pro cykly c) Příkazy pro řízení přenosu d) Příklad Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_178 Název školyGymnázium, Tachov, Pionýrská 1370 Autor Mgr. Eleonora Klasová Předmět.
1 / 6X36DSA 2005The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log.
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
1 / 2X36DSA 2005The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log.
1 / 9X36DSA 2005The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log.
ODDS RATIO Relationships between categorical variables in contingency table Jiří Šafr jiri.safr(AT)seznam.cz updated 29/12/2014 Quantitative Data Analysis.
Číslo projektu CZ.1.07/1.5.00/ Číslo materiálu VY_32_INOVACE_ 007 Název školy Gymnázium, Tachov, Pionýrská 1370 Autor Mgr.Stanislava Antropiusová.
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
y.cz Název školyStřední odborná škola a Gymnázium Staré Město Číslo projektuCZ.1.07/1.5.00/ AutorMgr. Roman Chovanec Název šablonyIII/2.
GA a predčasná konvergence Předčasná konvergence - výpočet konverguje příliš rychle k nějakému neoptimálnímu řešení Co způsobuje předčasnou konvergenci?
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM Businessland / Making Contracts 06B16 AutorLadislava Pechová Období vytvořeníLeden.
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
Pracovní list - pro tisk Vloženo z stress.pptx Začátek.
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
Datové struktury a algoritmy Část 7 Vyhledávání a vyhledávací stromy Searching and Search Trees Petr Felkel.
y.cz Název školyStřední odborná škola a Gymnázium Staré Město Číslo projektuCZ.1.07/1.5.00/ AutorMgr. Roman Chovanec Název šablonyIII/2.
Easter in the USA and Great Britain
48.1 SOUSTAVY ROVNIC Jsou dány dvě lineární rovnice se dvěma neznámými x – 2y = 1 2x + y = 2 Soustava lineárních rovnic se dvěma neznámými Které z uspořádaných.
y.cz Název školyStřední odborná škola a Gymnázium Staré Město Číslo projektuCZ.1.07/1.5.00/ AutorMgr. Roman Chovanec Název šablonyIII/2.
Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Zeměpis – 1. ročník 1 Arabské číslice.
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
Translation Translate the following sentences from English into Czech. Vzor: I don’t like the translation of this book. Who translated it? Nelíbí se mi.
1 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)),
Tutorial: Obchodní akademie Topic: Creating Formulas Prepared by : Mgr. Zdeněk Hrdina Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/
Scissor Jack (Nůžkový zvedák)
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT – Název projektu: Inovace výuky na GSN prostřednictvím.
Tutorial: Obchodní akademie Topic: Logical Functions Prepared by: Mgr. Zdeněk Hrdina Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/ je.
Podpora rozvoje cizích jazyků pro Evropu 21. stol. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Tento projekt je spolufinancován Evropským sociálním fondem a státním.
Název a adresa školy: Střední odborné učiliště stavební, Opava, příspěvková organizace, Boženy Němcové 22/2309, Opava Název operačního programu:OP.
Název a adresa školy: Střední odborné učiliště stavební, Opava, příspěvková organizace, Boženy Němcové 22/2309, Opava Název operačního programu:OP.
Podpora rozvoje cizích jazyků pro Evropu 21. stol. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Tento projekt je spolufinancován Evropským sociálním fondem a státním.
y.cz Název školyStřední odborná škola a Gymnázium Staré Město Číslo projektuCZ.1.07/1.5.00/ AutorMgr. Roman Chovanec Název šablonyIII/2.
PRIMA 2014 REPRODUCTION Výukový materiál GE Tvůrce: Mgr. Šárka Vopěnková Tvůrce anglické verze: ThMgr. Ing. Jiří Foller Projekt: S anglickým jazykem.
Název a adresa školy: Střední odborné učiliště stavební, Opava, příspěvková organizace, Boženy Němcové 22/2309, Opava Název operačního programu:OP.
Course Outline1. Instructor: Martin Hála, PhD. Mathematics DPT, B105,  Further information and downloads on my personal website:
Podpora rozvoje cizích jazyků pro Evropu 21. stol. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Tento projekt je spolufinancován Evropským sociálním fondem a státním.
8/1 The video task 1. The balls are made of a) steel b) iron c) wood 2. The water based liquid is there to.
Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Výukový materiál zpracovaný v rámci projektu „Učíme moderně“ Registrační číslo projektu:
Podpora rozvoje cizích jazyků pro Evropu 21. stol. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Tento projekt je spolufinancován Evropským sociálním fondem a státním.
Podpora rozvoje cizích jazyků pro Evropu 21. stol. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Tento projekt je spolufinancován Evropským sociálním fondem a státním.
Datum: Projekt: Kvalitní výuka Registrační číslo: CZ.1.07/1.5.00/ Číslo DUM: VY_22_INOVACE_9 Jméno autora: Irena Moučková Název práce:
Listening VY_32_INOVACE_AJ_2_60 Multiple choice Číslo projektu: CZ.1.07./1.5.00/ Název projektu: Zlepšení podmínek pro vzdělávání na SUŠ, Ostrava.
Název vzdělávacího materiálu
1. Najdi násobky čísel 4 a Elektronická učebnice - Základní škola Děčín VI, Na Stráni 879/2, příspěvková organizace Elektronické.
GE - Vyšší kvalita výuky
What do you have to think about when planning something?
Digitální učební materiál
NÁZEV ŠKOLY: Masarykova základní škola a mateřská škola Melč, okres Opava, příspěvková organizace ČÍSLO PROJEKTU: CZ.1.07/1.4.00/ AUTOR: Mgr. Zdeňka.
ALG 07 Selection sort (Select sort) Insertion sort (Insert sort)
Různé algoritmy mají různou složitost
Název materiálu: Past simple tense
In The Year Nejde vložit do pptx – nutno přes prohlížeč.
Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/
Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …
Summary.
Účetní schémata MS Dynamics NAV RTC-základy
Dynamické programování Optimální binární vyhledávací strom
Transkript prezentace:

0 / 1X36DSA 2005The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Data Structures and Algorithms Petr Felkel Marko Genyk-Berezovskyj DSA

1 / 1X36DSA 2005The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO Různé algoritmy mají různou složitost

2/ 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO The complexity of different algorithms varies X36DSA 2005

3 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … The speed... X36DSA 2005 One algorithm (program, method…) is faster than another one. Jeden algoritmus (program, metoda…) je rychlejší než druhý. What does it this sentence mean ?? Co ta věta znamená ??

4 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Asymptotic complexity X36DSA 2005 Každému algoritmu lze jednoznačně přiřadit rostoucí funkci, zvanou asymptotická složitost, která charakterizuje počet operací algoritmu. Čím pomaleji tato funkce roste, tím je algoritmus rychlejší. Each algorithm can be unambiguously assigned a growing function referred to as asymptotic complexity which characterizes the number of operations of the algorithm. The slower the is growth of this function the faster is the algorithm. y x y x

5 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO Find max and min in the array –1046 min 3 max –1046 min 3 max 3 if (a[i] < min) min = a[i]; if (a[i] > max) max = a[i]; –1046 min 2 max 3 Find min and max in the array — STANDARD X36DSA 2005

6 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO min = a[0]; max = a[0]; for ( i = 1; i < a.length; i++) { if (a[i] < min) min = a[i]; if (a[i] > max) max = a[i]; } Find min and max in the array — STANDARD – minmax code finished –1046 min 2 max 7 etc... X36DSA 2005

7 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO Find max and min in the array –1046 min 3 max –1046 min 3 max 3 if (a[i] < a[i+1]) { if ( a[i] < min) min = a[i]; if (a[i+1] > max) max = a[i+1];} –1046 min 2 max 7 Find min and max in the array — FASTER! X36DSA 2005

8 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO Find max and min in the array –1046 min 3 max 3 if (a[i] < a[i+1]) { if ( a[i] < min) min = a[i]; if (a[i+1] > max) max = a[i+1];} else { if ( a[i] > max) max = a[i]; if (a[i+1] < min) min = a[i+1];} –1046 min 0 max 10 Find min and max in the array — FASTER! X36DSA 2005

9 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO min = a[0]; max = a[0]; for (i=1; i < a.length-1; i=i+2 ) { if (a[i] < a[i+1]) { if ( a[i] < min) min = a[i]; if (a[i+1] > max) max = a[i+1];} else { if ( a[i] > max) max = a[i]; if (a[i+1] < min) min = a[i+1];}} Find min and max in the array — FASTER! – minmax code finished X36DSA 2005

10 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO X36DSA 2005 total number of elementary operations arithmetic operation or compare two numbers or move one number Elementary operation total number of elementary operations on the data Složitost celkový počet elementárních operací nad daty Complexity simplification zjednodušení Complexity Složitost celkový počet elementárních operací A B

11 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO X36DSA 2005 total number of number (character) comparisons in the data Složitost celkový počet elementárních operací nad daty Complexity further simplification further simplification další zjednodušení další zjednodušení Complexity Složitost celkový počet porovnání čísel (znaků).v datech total number of elementary operations on the data C B

12 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO X36DSA 2005 Find min and max in the array — STANDARD complexity min = a[0]; max = a[0]; for ( i = 1; i < a.length; i++){ if (a[i] < min) min = a[i]; if (a[i] > max) max = a[i]; } Best N + N–1 + N– N–1 + 0 = 4N+4 ops Worst A All operations All operations 0...N–1 N N–1 0...N–1 N– a.length = N N + N–1 + N–1 +N–1 + N–1 + N–1 = 6N–2 ops

13 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO X36DSA 2005 Find min and max in the array — STANDARD complexity min = a[0]; max = a[0]; for ( i = 1; i < a.length; i++){ if (a[i] < min) min = a[i]; if (a[i] > max) max = a[i]; } Best N– N–1 + 0 = 2N ops Worst B operations on data operations on data 0...N–1 N–1 0...N–1 N–1 11 a.length = N N–1 + N–1 + N–1 + N–1 = 4N–2 ops

14 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO X36DSA 2005 Find min and max in the array — STANDARD complexity min = a[0]; max = a[0]; for ( i = 1; i < a.length; i++){ if (a[i] < min) min = a[i]; if (a[i] > max) max = a[i]; } alwaysN–1 + N–1 = 2N–2 tests C tests only on data tests only on data N–1 a.length = N

15 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO X36DSA 2005 Find min and max in the array — FASTER! always tests only on data tests only on data complexity C –1046 N (N–1)/2 pairsOne pair — 3 tests 3(N–1)/2 = (3N – 3)/2 tests a.length = N Note: (3N – 3)/2 = (3N – 2)/2 if N is odd and “/” is integer division.

16/ 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO Array size NSTD method comparisons 2 (N – 1) FAST method comparisons (3N – 2)/2 *) ratio STD/FAST *) integer division X36DSA 2005 Tab. 1

17 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO –10–251 array a: array b: 7 0 How many elements of array a are equal to the sum of array b? –10– array a: array b: sum of b == 4 Result == 3 problem data soution Kolik prvků pole a je rovno součtu prvků pole b? X36DSA 2005

18/ 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO count = 0; for (int i = 0; i < a.length; i++) if (a[i]==sumArr(b)) count++; return count; SLOW method SLOW method FAST method FAST method int sumArr(int[] arr) {.../*easy*/} function count = 0; sumOf_b = sumArr(b); for (int i = 0; i < a.length; i++) if (a[i]==sumOf_b) count++; return count; X36DSA 2005

19 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO array a: array b: 7 1–10– array a: array b: 1–10–251 0 sum of b: 4 SLOW method SLOW method FAST method FAST method ≈ n x n operations ≈ 2 x n operations size of a ≈ n size of b ≈ n size of a ≈ n size of b ≈ n size of a ≈ n size of b ≈ n size of a ≈ n size of b ≈ n X36DSA 2005

20 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO Array size NSLOW method operations N 2 FAST method operations 2N ratio SLOW/FAST X36DSA 2005 Tab. 2

21 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO sorted array: tests: N tests: X36DSA Search in sorted array — linear, SLOW find 993 find 363 size = N

22 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO X36DSA Search in sorted array — binary, FAST 2 tests 1 test

23 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO … k … N = 2 k k = log 2 (N) =>... X36DSA N =2 0 =2 1 =2 2 =2 3 =2 k N

24/ 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … INTRO Array size linear search best caseworst case binary search worst case! avg. case tests ratio X36DSA 2005 Tab. 3

500 9  s 0,5ms 4,5ms 0,25s 125s 17h yrs yrs 25/ 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth The computation time for various time complexities assuming that 1 operation takes 1  s (10 -6 sec) log 2 n n n log 2 n n 2 n 3 n 4 2 n n! 20 4,3  s 20  s 86  s 0,4ms 8ms 160ms 1s yrs  s 1ms 10ms 1s 17min 11,6days yrs yrs 10 3,3  s 10  s 33  s 0,1ms 1ms 10ms 1ms 3,6s 20 4,3  s 20  s 86  s 0,4ms 8ms 160ms 1s yrs 40 5  s 40  s 0,2ms 1,6ms 64ms 2,56s 12,7 days yrs 60 5,8  s 60  s 0,35ms 3,6ms 0,2s 13s yrs yrs X36DSA 2005 Tab. 4

26 / 1  O  The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth X36DSA 2005 Order of growth of functions Řád růstu funkcí

27 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth p(x) = (x ) 1 16 e(x) = (x+26.44) X36DSA 2005 x y

28 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth e(x) = (x+26.44) p(x) = (x ) 1 16 Zoom out! : X36DSA 2005 x y

29 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth e(x) = (x+26.44) p(x) = (x ) 1 16 Zoom out! : X36DSA 2005 x y

30 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth e(x) = (x+26.44) p(x) = (x ) 1 16 Zoom out! : X36DSA 2005 x y

21 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth x y f(x) g 1 (x)   (f(x)) g 3 (x)   (f(x)) g 2 (x)   (f(x))  (f(x)) X36DSA 2005

32 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth X36DSA 2005 V množině  (f(x)) se octne každá funkce g(x), která od určitého bodu x 0 (není nijak předem předepsáno, kde by x 0 měl být) a) – je už vždy větší než funkce f(x) b) – sice větší než f(x) není, ale po vynásobení nějakou kladnou konstantou (hodnota konstanty také není nijak předepsána) je už vždy větší než funkce f(x). Takže: pokud najdeme nějaké x 0 a c>0 takové, že c·g(x) > f(x) všude napravo od x 0, (někdy stačí c=1) je jisto, že g(x)   (f(x))  (f(x))  Omega

33 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth X36DSA 2005 Pokud najdeme nějaké x 0 a c>0 takové, že c·g(x) > f(x) všude napravo od x 0, (někdy stačí c=1) je jisto, že g(x)   (f(x)) x > 60  e(x) > p(x), tj. takže platí e(x)   (p(x)) (ověřte!) x 0 = 60 y x e(x) = (x+26.44) p(x) = (x ) 1 16 (x ) (x+26.44) > c = 1

34 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth X36DSA 2005 b(x) = x + 3 Pokud najdeme nějaké x 0 a c>0 takové, že c·g(x) > f(x) všude napravo od x 0, je jisto, že g(x)   (f(x)) x r(x) = x–1 c = 4 x > 3.1  4·r(x) > b(x), tj. 4(x-1) > x + 3x takže platí r(x)   (b(x)) (ověřte!) r(x) = x–1 4·r(x) = 4(x–1) b(x) = x + 3x x 0 = 3.1 y x

35 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth X36DSA 2005 Typické ukázky 2 x  Ω(x 2 ) x 3  Ω(x 2 )x 2  Ω(x) 2 x  Ω(x 3 )2 x  Ω(x 5000 ) x n+1  Ω(x n ) x  Ω(log(x))x  log(x)  Ω(x)x 2  Ω(x  log(x) ) 2 x  Ω(x ) x  Ω(x)x  Ω(1) x  Ω(log(x) ) always f(x)  Ω(1) hard to believe f(x) > 1 

36 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth x y f(x) g 1 (x)  O(f(x)) g 3 (x)  O(f(x)) g 2 (x)  O(f(x)) O(f(x)) X36DSA 2005

37 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth X36DSA 2005 V množině O(f(x)) se octne každá funkce g(x), která od určitého bodu x 0 (není nijak předem předepsáno, kde by x 0 měl být) a) – je už vždy menší než funkce f(x) b) – sice menší než f(x) není, ale po vynásobení nějakou kladnou konstantou ( asi < 1 ) (hodnota konstanty také není nijak předepsána) je už vždy menší než funkce f(x). Takže: pokud najdeme nějaké x 0 a c>0 takové, že c·g(x) < f(x) všude napravo od x 0, (někdy stačí c=1) je jisto, že g(x)  O(f(x)) O(f(x)) O Omikron

38 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth X36DSA 2005 Pokud najdeme nějaké x 0 a c>0 takové, že c·g(x) < f(x) všude napravo od x 0, (někdy stačí c=1) je jisto, že g(x)  O(f(x)) x > 60  p(x) < e(x), tj. takže platí p(x)  O(e(x)) (ověřte!) x 0 = 60 y x e(x) = (x+26.44) p(x) = (x ) 1 16 (x ) 1 16 < (x+26.44) c = 1

39 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth X36DSA 2005 b(x) = x + 3 x r(x) = x–1 x > 1  r(x) < b(x), tj. x–1 < x + 3x takže platí r(x)  O(b(x)) r(x) = x–1 b(x) = x + 3x y x x 0 = 1 Pokud najdeme nějaké x 0 a c>0 takové, že c·g(x) < f(x) všude napravo od x 0, (někdy stačí c=1) je jisto, že g(x)  O(f(x))

40 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth X36DSA 2005 f  Ω(g) g  O(f) x2  O(2x)x2  O(2x) x2  O(x3)x2  O(x3)x  O(x 2 ) x3  O(2x)x3  O(2x)x 5000  O(2 x ) x n  O(x n+1 ) log(x)  O(x)x  O(x  log(x))x  log(x)  O(x 2 ) x  O(2 x ) x  O(x )1 O(x)1 O(x) always 1  O(f(x)) hard to believe f(x) > 1  x log(x)  O( )

41 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth x y f(x) g 1 (x)   (f(x)) g 3 (x)   (f(x)) g 2 (x)   (f(x))  (f(x)) X36DSA 2005

42 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth X36DSA 2005 V množině  (f(x)) se octne každá funkce g(x), která spadá jak do Ω(f(x)) tak do O(f(x)).  (f(x)) = Ω(f(x))  O(f(x))  Theta f(x)   (g(x))  g(x)   (f(x))

43 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth X36DSA 2005 b(x) = x + 3 x r(x) = x–1 r(x)  O(b(x)) r(x) = x–1 b(x) = x + 3x y x f(x)   (g(x))  g(x)   (f(x)) e(x)   (p(x)) r(x)   (b(x))

44 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth X36DSA 2005 Rules 1.8x  log 2 (x)   (x) x 3 + 7x 1/2 + 5(log 2 (x)) 4   (x 3 ) 13  3 x + 9x x   (3 x ) g(x)  O(f(x))   (f(x)) =  (f(x) + g(x)) (a > 0)   (f(x)) =  (a  f(x)) 0.1x x 4 + 7x 2 + x - 3   (x 5 ) –’’–  O(x 5 ) –’’–   (x 5 ) 4  2 n + 3  2 n  2 n/2   (2 n ) Examples

45 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth  (f(x)) = { g(x) ;  x 0 >0,c>0  x>x 0 : g(x) < c·f(x) }  (f(x)) = { g(x) ;  x 0 >0,c>0  x>x 0 : c·f(x) < g(x) }     (f(x)) = { g(x) ;  x 0 >0,c 1 >0, c 2 >0  x>x 0 : c 1 · f(x) < g(x) < c 2 ·f(x) } X36DSA 2005

46 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth X36DSA 2005 Řád růstu funkce ff(x) = 4  2 n + 3  2 n  2 n/2   (2 n ) Řád růstu funkce f je taková “co nejjednodušší” funkce g, pro kterou platí g(x)   f(x) Řád růstu ff(x) je 2 n

47 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Asymptotic complexity X36DSA 2005 Asymptotická složitost Asymptotická složitost algoritmu A je řád růstu funkce f(n), která charakterizuje počet elementárních operací algoritmu A při zpracování dat o rozsahu n. ( rozsah dat = celkový počet čísel a znaků v nich) A) počet všech elementárních operací B) počet všech elementárních operací nad daty C) počet testů nad daty Ve většině případů nehraje roli, zda uvažujeme Asymptotická složitost vycházívá táž.

48 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Asymptotic complexity X36DSA 2005 Asymptotická složitost Asymptotická složitost hledání minima v poli o n prvcích je n. V obou uvedených případech. Asymptotická složitost pomalého zjišťování, kolik čísel v poli je rovno součtu jiného pole je n 2. Asymptotická složitost rychlého zjišťování, kolik čísel v poli je rovno součtu jiného pole je n. Za předpokladu, že obě pole mají délku n. Asymptotická složitost lineárního hledání prvku v poli je n. Asymptotická složitost hledání prvku uspořádaném poli pomocí půlení intervalu je log(n).

49 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth Funkce f(x) roste asymptoticky rychleji než funkce g(x), když f(x)  Ω(g(x)) & f(x)   (g(x)) X36DSA 2005 Algoritmus A je asymptoticky rychlejší než algoritmus B, když f A (n)  Ω(f B (n)) & f A (n)   (f B (n)), kde f A (n), resp. f B (n) je funkce určující počet operací, které provede algoritmus A, resp. B, při zpracování dat o rozsahu n.

50 / 1The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Order of growth Function f(x) grows asymptotically faster then function g(x) if f(x)  Ω(g(x)) & f(x)   (g(x)) X36DSA 2005 Algorithm A is asymptotically faster then algorithm B when f A (n)  Ω(f B (n)) & f A (n)   (f B (n)) where f A (n) resp. f B (n) is the function specifying the number of operations performed by algorithm A resp. B during processing the data of size n.