390 likes | 542 Views
X36DSA 2004. The complexity of different algorithms varies: O(n) , Ω (n 2 ) , Θ ( n · log 2 (n)) , …. 1 / 13. DSA. Různé algoritmy mají různou složitost. Různé algoritmy mají různou složitost : O(n) , Ω (n 2 ) , Θ ( n · log 2 (n)) , …. X36DSA 2004.
E N D
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … 1 / 13 DSA Různé algoritmy mají různou složitost Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … 2 / 13 DSA The complexity of different algorithms varies Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 A = { , , },|A| = 3 Jazyk Abeceda… konečná (neprázdná) množina symbolů |A| … mohutnost abecedy A Abeceda Příklady: A = { ‘A’, ‘D’, ‘G’, ‘O’, ‘U’},|A| = 5 A = {0,1}, |A| = 2 Slovo (nad abecedou A) … konečná (příp. prázdná) také řetězec posloupnost symbolů abecedy (A) |w| … délka slova w Slovo Příklady: w =OUAGADOUGOU, |w| = 11 w = 1001, |w| = 4 w = , |w| = 5 Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 Jazyk Jazyk… množina slov (=řetězců) (ne nutně konečná, může být prázdná) |L| … mohutnostjazyka L Jazyk 1 Specifikace jazyka -- Výčtem všech slov jazyka (jen pro konečný jazyk) Příklady: A1 = {‘A’, ‘D’, ‘G’, ‘O’, ‘U’} L1= {ADA, DOG, GOUDA, D, GAG}, |L1| = 5 A2 = {0,1} L2= {0, 1, 00, 01, 10, 11}, |L2| = 6 A3 = { , , } L3= { , , }, |L2| = 3 Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 Jazyk 2 Specifikace jazyka -- Volný (ale jednoznačný) popis v přirozeném jazyce (obvykle pro nekonečný jazyk) Příklady: A1 = {‘A’, ‘D’, ‘G’, ‘O’, ‘U’} L1: Množina všech slov nad A1, která začínají na DA, končí na G a neobsahují podposloupnost AA. L1 = {DAG, DADG, DAGG, DAOG, DAUG, DADAG, DADDG… } |L1| = A2 = {0,1} L2: Množina všech slov nad A2, která obsahují více 1 než 0 a za každou 0 jsou alespoň dvě 1. L2 = {1, 11, 011, 0111, 1011, 1111, … , 011011, 011111, … } |L2| = Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 Konečný automat 3 Specifikace jazyka -- konečným automatem Konečný automat (finite automaton) je pětice(A, Q, σ, S0, QF), kde: A Q σ S0 QF … abeceda … konečná množina symbolů |A| ... mohutnost abecedy ... množina stavů (mnohdy očíslovaných) (co je to „stav“ ?) ... přechodová funkce ... σ: QA Q ... počáteční stav S0 Q … neprázdná množina koncových stavů ≠ QF Q Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 0 1 C 1 0 0 S A B 0 1 1 D 0,1 Konečný automat Automat FA1: A Q σ S0 QF … abeceda … {0,1}, |A| = 2 ... množina stavů {S, A, B, C, D } ... přechodová funkce ... σ: QA Q : { σ(S,0) = S, σ(A,0) = B, σ(B,0) = C, σ(C,0) = C, σ(D,0) = D, σ(S,1) = A, σ(A,1) = D, σ(B,1) = D, σ(C,1) = A, σ(D,1) = D } ... počáteční stav S Q … neprázdná množina koncových stavů ≠ { C } Q Přechodový diagram automatu FA1 FA1 Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 C C 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 Konečný automat FA1 0 1 1 0 0 S A B 0 1 1 D 0,1 FA1 0 1 1 0 0 S A B 0 1 1 D 0,1 Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 C C 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 Konečný automat FA1 0 1 1 0 0 S A B 0 1 1 D 0,1 FA1 0 1 1 0 0 S A B 0 1 1 D 0,1 Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 C C 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 Konečný automat FA1 0 1 1 0 0 S A B 0 1 1 D 0,1 FA1 0 1 1 0 0 S A B 0 1 1 D 0,1 Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 C C 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 Konečný automat FA1 0 1 1 0 0 S A B 0 1 1 D 0,1 FA1 0 1 1 0 0 S A B 0 1 1 D 0,1 Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 C 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 Konečný automat FA1 0 1 1 0 0 S A B 0 1 1 D 0,1 Po přečtení posledního symbolu je automat FA1 v koncovém stavu Slovo jepřijímánoautomatemFA1 Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 C C Konečný automat FA1 0 1 1 0 0 1 0 0 1 S A B 0 1 1 D 0,1 FA1 0 1 1 0 0 1 0 0 1 S A B 0 1 1 D 0,1 Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 C C Konečný automat FA1 0 1 1 0 0 1 0 0 1 S A B 0 1 1 D 0,1 FA1 0 1 1 0 0 1 0 0 1 S A B 0 1 1 D 0,1 FA1 Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 C Konečný automat FA1 0 1 1 0 0 1 0 0 1 S A B 0 1 1 D 0,1 Po přečtení posledního symbolu je automat FA1 ve stavu, který není koncový Slovo 1 0 0 1 není přijímánoautomatem FA1 Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 C C Konečný automat FA1 0 1 1 0 0 1 1 0 1 ... S A B 0 1 1 D 0,1 FA1 0 1 1 0 0 1 1 0 1 ... S A B 0 1 1 D 0,1 Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 C C Konečný automat FA1 0 1 1 0 0 1 1 0 1 ... S A B 0 1 1 D 0,1 FA1 0 1 1 0 0 S A B 0 1 1 0 1 ... 1 1 D 0 ,1 Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 C Konečný automat FA1 0 1 1 0 0 1 1 0 1 ... S A B 0 1 1 D 0, 1 Žádnéslovo začínající 1 1 ... není přijímáno automatem FA1 Žádnéslovo obsahující ... 1 1 ... není přijímáno automatem FA1 Žádnéslovo obsahující ... 1 0 1 ... není přijímáno automatemFA1 Automat FA1 přijímá pouze slova -- obsahující alespoň jednu jedničku -- obsahující za každou jedničkou alespoň dvě nuly Jazyk příjímaný automatem = množina všech slov přijímaných automatem Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 Konečný automat Činnost automatu: Na začátku je automat ve startovním stavu. Pak čte zadané slovo znak po znaku a přechází do dalších stavů podle přechodové funkce. Když dočte slovo, nachází se opět v některém ze svých stavů. Pokud je v koncovém stavu, řekneme, že dané slovo přijímá, pokud není v koncovém stavu, řekneme, že dané slovo nepřijímá. Všechna slova přijímaná automatem tvoří dohromady jazyk přijímaný (rozpoznávaný) automatem Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 0 0 1 1 D B 0 A S 0 1 C 1 0 1 Konečný automat Jazyk nad abecedou {0,1} : Pokud slovo začíná 0, končí 1, pokud slovo začíná 1, končí 0. Automat FA2 Ukázka analýzy slov automatem FA2: 0 1 0 1 0 : (S),0 → (A),1 → (B),0 → (A),1 → (B),0 → (A) (A) není koncový stav, slovo 0 1 0 1 0 automat FA2 nepřijímá. 1 0 1 1 0 : (S),1→ (C),0→ (D),1→ (C),1 → (C),0 → (D) (D) je koncový stav, slovo 1 0 1 1 0 automat FA2 přijímá. Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 C Konečný automat Jazyk: { 0 1 0, 0 1 1 0, 0 1 1 1 0, 0 1 1 1 1 0, 0 1 1 1 1 1 0, ... } 1 0 1 0 S A B 1 0 0,1 D 0,1 Automat FA3 Ukázka analýzy slov automatem FA3 0 1 0 1 0 : (S),0 → (A),1 → (B),0 → (C),1 → (D),0 → (D) (D) není koncový stav, slovo 0 1 0 1 0 automat FA3 nepřijímá. 0111 0 : (S),0 → (A),1 → (B),1→ (B),1 → (B),0 → (C) (C) je koncový stav, slovo 0 1 1 1 0 automat FA3 přijímá. Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 C Konečný automat 1 1 0,1 0 1 0 Automat FA4 S A B 0 Automat FA4 příjme každé slovo nad abecedou {0,1} obsahující podposloupnost ... 0 1 0 ... Ukázka analýzy slov automatem FA4 0 0 1 0 1 : (S),0 → (A),0→ (A),1→ (B),0→ (C),1→ (C) (C) je koncový stav, slovo 0 0 1 0 1 automat FA4 přijímá. 0111 0 : (S),0 → (A),1 → (B),1→ (S),1 → (S),0 → (A) (A) není koncový stav, slovo 0 1 1 1 0 automat FA4 nepřijímá. Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 2 4 Konečný automat Jazyk nad abecedou { +, - , . , 0, 1, …, 8, 9, … } jehož slova představují zápis desetinného čísla v desítkové soustavě 0,1,...,9 0,1,...,9 0,1,...,9 . 0,1,...,9 +,- 0,1,...,9 0 1 3 jinak jinak jinak jinak jinak 5 Automat FA5 jakýkoli symbol Ukázka analýzy slov +87.09: (0),+ → (1),8 → (2),7 → (2), . → (3),0 → (4),9 → (4) (4) je koncový stav, slovo +87.05 automat přijímá. 76+2: (0),7 → (2),6 → (2),+ → (5),2 → (5) (5) není koncový stav, slovo 76+2 automat nepřijímá. Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 0,1,...,9 0,1,...,9 0,1,...,9 . 0,1,...,9 +,- 0,1,...,9 0 1 3 4 2 jinak jinak jinak jinak jinak 5 jakýkoli symbol Implementace konečného automatu FA5 Kód konečného automatu (Čtená posloupnost znaků je uložena v poli arr[ ]): int isDecimal(int arr[], int length) { int i; int state = 0; for(i = 0; i < length; i++) { // check each symbol switch (state) { ... Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 0,1,...,9 0,1,...,9 0,1,...,9 . 0,1,...,9 +,- 0,1,...,9 0 1 3 2 4 jinak jinak jinak jinak jinak 5 jakýkoli symbol Implementace konečného automatu FA5 case 0: if ((arr[i] == '+') || (arr[i] == '-')) state = 1; else if ((arr[i] >= '0') && (arr[i] <= '9')) state = 2; else state = 5; break; Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 0,1,...,9 0,1,...,9 0,1,...,9 . 0,1,...,9 +,- 0,1,...,9 0 1 3 2 4 jinak jinak jinak jinak jinak 5 jakýkoli symbol Implementace konečného automatu FA5 case 1: if ((arr[i] >= '0') && (arr[i] <= '9')) state = 2; else state = 5; break; Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 0,1,...,9 0,1,...,9 0,1,...,9 . 0,1,...,9 +,- 0,1,...,9 0 1 3 2 4 jinak jinak jinak jinak jinak 5 jakýkoli symbol Implementace konečného automatu FA5 case 2: if ((arr[i] >= '0') && (arr[i] <= '9')) state = 2; else if (arr[i] == '.') state = 3; else state = 5; break; Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 0,1,...,9 0,1,...,9 0,1,...,9 . 0,1,...,9 +,- 0,1,...,9 0 1 3 2 4 jinak jinak jinak jinak jinak 5 jakýkoli symbol Implementace konečného automatu FA5 case 3: if ((arr[i] >= '0') && (arr[i] <= '9')) state = 4; else state = 5; break; case 4: if ((arr[i] >= '0') && (arr[i] <= '9')) state = 4; else state = 5; break; case 5: break; // no need to react anyhow default : break; } // end of switch Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 0,1,...,9 0,1,...,9 0,1,...,9 . 0,1,...,9 +,- 0,1,...,9 0 1 3 2 4 jinak jinak jinak jinak jinak 5 jakýkoli symbol Implementace konečného automatu FA5 } // end of for loop -- word has been read if ((state == 2) || (state == 4)) return 1; // success -- decimal OK else return 0; // not a decimal } // end of function isDecimal() Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 Regulární jazyk Jazyk přijímaný nějakým konečným automatem se nazývá regulární jazyk Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 0 0 1 1 B D 0 A S 0 1 C 1 0 1 Generativní regulární gramatika 4 Specifikace jazyka -- gramatikou Jazyk nad abecedou {0,1} : Pokud slovo začíná 0, končí 1, pokud slovo začíná 1, končí 0. Automat FA2 Regulární gramatika: Regulární gramatika -- ekvivalentní zápis: S → 0A S → 1C A → 0A A → 1B A → 1 B → 0A B → 1B B → 1 C → 0D C → 1C C → 0 D → 0D D → 1C D → 0 S → 0A | 1C A → 0A | 1B | 1 B → 0A | 1B | 1 C → 0D | 1C | 0 D → 0D | 1C | 0 Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 0 0 1 1 B D 0 A S 0 1 C 1 0 1 Generativní regulární gramatika Regulární gramatika: (1) (2)(3)(4)(5) (6) (7) S → 0A S → 1C A → 0A A → 1B A → 1 B → 0A B → 1B (8) (9)(10)(11)(12) (13) (14) B → 1 C → 0D C → 1C C → 0 D → 0D D → 1C D → 0 Generování slov pomocí pravidel gramatiky: S je startovní symbol, který se pomocí pravidel gramatiky expanduje: (1) (4) (6) (3) (4) (8) S →0A→ 01B → 010A → 0100A → 01001B → 010011 (2) (9) (12) (14) S →1C→10D→100D→ 1000 Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 0 0 1 1 B D 0 A S 0 1 C 1 0 1 Generativní regulární gramatika Pravidlo gramatiky: S → 0A Levá strana Pravá strana Symboly 0,1, které jsou prvky abecedy výsledného slova se nazývají terminální symboly Ostatní symboly sloužící k expanzi (S, A, B, C, ...) se nazývají neterminální symboly – ve výsledném slově se nesmí objevit. V regulární gramatice smí být na levé straně straně každého pravidla jen jediný neterminální symbol, na pravé straně smí být buď jen samotný terminál nebo terminál následovaný neterminálem. Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 B Konečný automat, který příjímá jazyk L, lze převést na gramatiku, která generuje týž jazyk L. Za každý přechod ze stavu A do stavu B při čtení symbolu x x A B vytvoříme pravidlo A → xB. Je-li navíc B koncovým stavem, x A přidáme pravidlo A → x. Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 0 0 1 1 B D 0 A S 0 1 C 1 0 1 Generativní regulární gramatika Jazyk nad abecedou {0,1} : Pokud slovo začíná 0, končí 1, pokud slovo začíná 1, končí 0. Automat FA2 S → 0A S → 1C A → 0A A → 1B A → 1 B → 0A B → 1B B → 1 C → 0D C → 1C C → 0 D → 0D D → 1C D → 0 Regulární gramatika: Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 Omezení regulárních jazyků Zdaleka ne každý jazyk je regulární a tudíž zdaleka ne každý jazyk může být rozpoznán konečným automatem a tudíž zdaleka ne každý jazyk může být generován regulární gramatikou. Např. jazyk L2 nad abecedou {0,1}, v němž každé slovo obsahuje stejný počet jedniček jako nul. Neformální důvod: Byl by nutný neomezený počet stavů pro zapamatování počtu nul, který by se pak musel porovnávat s počtem jedniček. (Konečný automat není schopen registrovat, kolikrát byl ten který stav navštíven během čtení slova.) Jazyk L2 lze ale generovat gramatikou, která není regulární: S SS | 0S1 | 1S0 | 01 | 10 Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 Generativní regulární gramatika Domácí úkol Jazyk: desetinná čísla {0.24, -21.01, 3.1416, 20.000, ... } <desetinnéčíslo> <nezáporné číslo> | - <nezáporné číslo> <nezáporné číslo><celá část> <desetinná část> <celá část><číslice> |<nenula><celé0> <celé0><číslice> |<číslice><celé0> <desetinná část> . <celé0> <číslice> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 <nenula> 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 Tato gramatika není regulární, jazyk, který generuje, však regulární je, navrhněte pro něj konečný automat a napište regulární gramatiku. Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …
X36DSA 2004 The complexity of different algorithms varies: O(n),Ω(n2),Θ(n·log2(n)), … / 13 Akronym DSA (3b.!) – uzávěrka Došlé příspěvky v abecedním pořadí: 1. Data, sex, alkohol 2. Divácky stabilní atrakce 3. Disney's special activities 4. Dlouhodobásexualníabstinence 5. Don't study algorithms 6. Drsnéspolečenstvo asociálů 7. Družstvo statečných asociálů Různé algoritmy mají různou složitost: O(n),Ω(n2),Θ(n·log2(n)), …