Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
mgr-szz:in-pos:2-pos [2019/06/13 09:59]
lachmanfrantisek Boyer-Moore
mgr-szz:in-pos:2-pos [2020/04/12 16:56] (aktuální)
Řádek 285: Řádek 285:
   * struktura může obsahovat víc stromů; ukládáme ukazatel na minimální prvek   * struktura může obsahovat víc stromů; ukládáme ukazatel na minimální prvek
   * odkládáme operace až na dobu, kdy je to nutné   * odkládáme operace až na dobu, kdy je to nutné
 +  * dvě hlavní mota (viz video [[https://​www.youtube.com/​watch?​v=CEvUqy1uF1E|Amortized analysis of Fibonacci heap]]):
 +    * //Někdy se vyplatí nechat nepořádek narůst. (A uklidit hromadně.)//​
 +      * = Nové uzly přidáváme jako jednouzlové stromy. Stromy se stejným stupněm spojujeme hromadně až při ''​extract-min''​. ​
 +    * //Tvoji rodiče chtějí hodně vnoučat a pokud nemáš moc dětí, tak tě zavrhnou.//
 +      * = Uzel, který již dvakrát ztratil při ''​decrease-key''​ potomka je přesunut jako nový strom.
   * Efektivně realizujeme UNION, INSERT a DECREASE_KEY,​ ale nezhoršujeme amortizovanou složitost ostatních operací.   * Efektivně realizujeme UNION, INSERT a DECREASE_KEY,​ ale nezhoršujeme amortizovanou složitost ostatních operací.
  
Řádek 324: Řádek 329:
     * komponenty souvislosti     * komponenty souvislosti
     * ekvivalence konečných automatů     * ekvivalence konečných automatů
 +
 +^ algoritmus ^ MAKE_SET ^ UNION ^ FIND_SET ^
 +| reverzní stromy | <​math>​\mathcal{O}(1)</​math>​ | <​math>​\mathcal{O}(1)</​math>​ | <​math>​\mathcal{O}(n)</​math>​ |
 +| reverzní stromy (optimalizace) | <​math>​\mathcal{O}(1)</​math>​ | <​math>​\mathcal{O}(\log n)</​math>​ | <​math>​\mathcal{O}(\log n)</​math>​ |
 +| plytké stromy | <​math>​\mathcal{O}(1)</​math>​ | <​math>​\mathcal{O}(\log n)</​math>​ | <​math>​\mathcal{O}(1)</​math>​ |
 +
 +Stromy s kompresí: Posloupnost m operací UNION, FIND_SET a MAKE_SET, z toho n operací MAKE_SET má složitost <​math>​O(m . \alpha(n))</​math>​
  
 <box 100% blue|Reverzní stromy (Reversed trees)> <box 100% blue|Reverzní stromy (Reversed trees)>
Řádek 375: Řádek 387:
  
 ^ Algoritmus ^ Předspracování ^ Vyhledávání ^ ^ Algoritmus ^ Předspracování ^ Vyhledávání ^
-| Úplné prohledávání | <​math>​O</​math>​ | <​math>​O((n-m+1)m)</​math>​ | +| Úplné prohledávání | <​math>​O</​math>​ | <​math>​\mathcal{O}((n-m+1)m)</​math>​ | 
-| Karp-Rabin * | <​math>​\Theta(m)</​math>​ | <​math>​O((n-m+1)m)</​math>​ | +| Karp-Rabin * | <​math>​\Theta(m)</​math>​ | <​math>​\mathcal{O}((n-m+1)m)</​math>​ | 
-| Konečné automaty | <​math>​O(m |\Sigma|)</​math>​ | <​math>​\Theta(n)</​math>​ |+| Konečné automaty | <​math>​\mathcal{O}(m |\Sigma|)</​math>​ | <​math>​\Theta(n)</​math>​ |
 | Knuth-Morriss-Pratt | <​math>​\Theta(m)</​math>​ | <​math>​\Theta(n)</​math>​ | | Knuth-Morriss-Pratt | <​math>​\Theta(m)</​math>​ | <​math>​\Theta(n)</​math>​ |
-| Boyer-Moore * | <​math>​\Theta(m + |\Sigma|)</​math>​ | <​math>​O((n-m+1)m)</​math>​ |+| Boyer-Moore * | <​math>​\Theta(m + |\Sigma|)</​math>​ | <​math>​\mathcal{O}((n-m+1)m)</​math>​ |
  
 * Očekávaná složitost je výrazně lepší. * Očekávaná složitost je výrazně lepší.
mgr-szz/in-pos/2-pos.1560412766.txt.gz · Poslední úprava: 2020/04/12 16:56 (upraveno mimo DokuWiki)
Nahoru
CC Attribution-Noncommercial-Share Alike 4.0 International
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0