]> mj.ucw.cz Git - ads1.git/commitdiff
Trideni: Korektury od Karla
authorMartin Mares <mj@ucw.cz>
Thu, 16 Jun 2011 15:07:18 +0000 (17:07 +0200)
committerMartin Mares <mj@ucw.cz>
Thu, 16 Jun 2011 15:07:18 +0000 (17:07 +0200)
13-trideni/13-trideni.tex

index 46914df401aff413c0bbaf77cd1fcf94035c92a5..ebe067c19ccaedd219f29d71fbc6d53ba4b75a7c 100644 (file)
@@ -63,38 +63,47 @@ s~rozd
 \>®ádný algoritmus v tabulce netøídil rychleji ne¾ $\Theta(n\log n)$. To není náhoda
 -- nasledující vìta nám øíká, ¾e to nejde:
 
-{\bf XXX: Letos jsem vìtu dokazoval trochu jinak, nutno pøedìlat.}
-
 \s{Vìta:}
-Ka¾dý tøídící algoritmus zalo¾ený na porovnávání a prohazování prvkù
+Ka¾dý deterministický tøídící algoritmus zalo¾ený na porovnávání a kopírování prvkù
 potøebuje na vstup délky $n$ v nejhor¹ím pøípadì $\Omega (n \log n)$ porovnání.
 
-\proof
-Bez újmy na obecnosti budeme nejdøíve pøedpokládat o algoritmu dvì vìci:
-Jednak to, ¾e algoritmus nejprve porovnává, a teprve potom prohazuje.\foot{Algoritmus
-mù¾eme upravit tak, aby si pamatoval aktuální permutaci prvkù a podle ní prohazoval a¾ na konci.}
-Také pøedpokládáme, ¾e vstup algoritmu je permutace na mno¾inì $\{1, \ldots, n\}$.
+O pravdìpodobnostních se v prùmìru dá dokázat podobná vìta.
+
+\proof Bez újmy na obecnosti budeme nejdøíve pøedpokládat o algoritmu dvì vìci: Jednak
+to, ¾e algoritmus nejprve porovnává, a teprve potom kopíruje setøídìné prvky do
+výsledného pole.\foot{Algoritmus mù¾eme upravit tak, aby si pamatoval aktuální
+permutaci prvkù a podle ní prohazoval a¾ na konci.} Také pøedpokládáme, ¾e vstup
+algoritmu je permutace na mno¾inì $\{1, \ldots, n\}$. Toto je také bez újmy na
+obecnosti, proto¾e dokazujeme ¾e existuje vstup na kterém pobì¾í aspoò takhle dlouho.
+
+Chování tohoto algoritmu popí¹eme rozhodovacím stromem. V rozhodovacím stromu vnitøní
+vrcholy urèují jednotlivá porovnání prvkù a listy odpovídají okam¾ikùm, kdy algoritmus
+urèil permutaci. Porovnáváme prvky na jejich pùvodních pozicích. Nikdo nám nebrání
+porovnat prvek sám se sebou (proto mù¾e nastat rovnost) nebo porovnat nìco
+nìkolikrát\dots
 
-Chování tohoto algoritmu popí¹eme rozhodovacím stromem. V rozhodovacím stromu vnitøní vrcholy
-urèují jednotlivá porovnání prvkù a listy odpovídají okam¾ikùm, kdy algoritmus pøestal porovnávat a zaèal prohazovat.
+Hloubka rozhodovacího stromu odpovídá poètu porovnání. My chceme dokázat, ¾e porovnání
+musí být aspoò $\Omega (n\log n)$.
 
 \figure{RozhodovaciStrom.eps}{Rozhodovací Strom}{0.3\hsize}
 
-Vstup je permutace $n$ prvkù, a víme ¾e poèet rùzných permutací je $n!$. Existuje tedy právì $n!$ rùzných vstupù.
-Dále si v¹imneme, ¾e nemohou existovat dvì vstupní permutace, pro které by algoritmus skonèil v tém¾e listu rozhodovacího stromu.
-Listù stromu je tedy alespoò tolik, kolik je rùzných vstupù, tedy $n!$.
+Vstup je permutace $n$ prvkù, a víme ¾e poèet rùzných permutací je $n!$. Existuje tedy
+právì $n!$ rùzných vstupù. Kompletní prùbìh algoritmu je urèen pouze výsledky
+porovnání. Dále si v¹imneme, ¾e nemohou existovat dvì vstupní permutace, pro které by
+algoritmus skonèil v tém¾e listu rozhodovacího stromu. Listù stromu je tedy alespoò
+tolik, kolik je rùzných vstupù, tedy $n!$.
 
 {\narrower
-  \s{Lemmátko:} Binární strom hloubky $k$ má nejvý¹e $2^k$ listù.
-  \par\noindent {\sl Dùkazík:} Uva¾me binární strom hloubky $k$ s maximálním poètem
+  \s{Lemmátko:} Ternární strom hloubky $k$ má nejvý¹e $3^k$ listù.
+  \par\noindent {\sl Dùkazík:} Uva¾me ternární strom hloubky $k$ s maximálním poètem
   listù. V takovém stromu budou v¹echny listy urèitì le¾et na poslední hladinì
   (kdyby nele¾ely, mù¾eme pod nìkterý list na vy¹¹í hladinì pøidat dal¹í dva vrcholy a získat
-  tak \uv{listnatìj¹í} strom stejné hloubky). Jeliko¾ na $i$-té hladinì je nejvý¹e $2^i$
-  vrcholù, v¹ech listù je nejvý¹e $2^k$.
+  tak \uv{listnatìj¹í} strom stejné hloubky). Jeliko¾ na $i$-té hladinì je nejvý¹e $3^i$
+  vrcholù, v¹ech listù je nejvý¹e $3^k$.
   \qed
 }
 
-\>Z~tohoto lemmátka plyne, ¾e rozhodovací strom musí být hluboký alespoò $\log n!$.
+\>Z~tohoto lemmátka plyne, ¾e rozhodovací strom musí být hluboký alespoò $\log_3 n!$.
 
 \>Zbytek je u¾ snadné cvièení z diskrétní matematiky: