co nejménìkrát a~nezále¾í nám tolik na~tom, kolik operací se~vykoná v~jednom
uzlu. (Èasovì je operace porovnávání zanedbatelná oproti ètení z~disku.)
+Hodilo by se nám tedy mít uzly velké tøeba tak, jako je velká jedna stránka
+cache \dots
+
\s{Definice:} {\I $(a,b)$-strom} pro parametry $a,b$, $a \geq 2$, $b\geq 2a - 1$ je zakoøenìný strom s~uspoøádanými syny a~vnìj¹ími vrcholy, pro který platí
následující axiomy:
\numlist\nparen
\:Koøen má $2$ a¾~$b$ synù, ostatní vnitøní vrcholy $a$ a¾ $b$ synù.
\:V¹echny vnìj¹í vrcholy jsou ve~stejné hloubce (vnìj¹í vrchol$=$list).
\endlist
-\>{\I Poznámka:} kdekoli~by mohl být syn a~není, pøipojíme vrchol, kterému øíkáme vnìj¹í vrchol)
+\>{\I Poznámka:} kdekoli~by mohl být syn a~není, pøipojíme vrchol, kterému øíkáme vnìj¹í vrchol. Mù¾eme si to pøedstavit tøeba jako NULL-pointer.
\abpic{ab-strom11}
\s{Operace s (a,b)-stromy:}
\s{Find}
-\item{-}V¾dy zjistíme, mezi které 2 klíèe hledaný vrchol patøí a potom se zanoøíme hloubìji.\
+\item{-}V¾dy zjistíme, mezi které 2 klíèe hledaný vrchol patøí, a potom se zanoøíme hloubìji.\
\>Èasová slo¾itost nalezení prvku v $(a,b)$-stromu je $O(\log b \cdot \log_a n)$, kde $\log b$ je èas strávený na~jednom vrcholu pro zji¹tení, mezi které 2 vrcholy hledaný patøí, $\log_a n$ je hloubka stromu.
\abpics{b-klicu1}{b-klicu2}
-\s{Poznámka:} Jestli¾e se dostaneme a¾ do koøene, rozdìlí se koøen na dvì èásti, vznikne nám nový koøen se dvìma syny (co¾ je povoleno) a celému stromu vzroste hloubka o jedna.
+\s{Poznámka:} Jestli¾e se dostaneme a¾ do koøene, rozdìlí se koøen na dvì
+èásti, vznikne nám nový koøen se dvìma syny (co¾ je povoleno právì kvùli tomuto
+pøípadu) a celému stromu vzroste hloubka o jedna.
\s{Korektnost:}
Potøebujeme, aby
$$\vert P\vert \geq a-1$$
po seètení obou nerovností a~priètení 1 na~obì strany rovnice:
$$\vert L\vert +\vert P\vert +1\geq 2a-2+1=2a-1$$
-pravá strana je rovna $b$ a~to podle definice $\geq 2a-1$. \par
-\s{Èasová slo¾itost:} vkládání prvku do $(a,b)$-stromu je $O(b\cdot \log_a n)$.
+pravá strana je rovna $b$ a~to podle definice $\geq 2a-1$.
+\s{Èasová slo¾itost:} vkládání prvku do $(a,b)$-stromu je $O(b\cdot \log_a n)$.
\s{Delete}
-\item{-} pøevedeme na~delete z~listu (stejný postup jako u~stromu: jestli¾e to není list, prohodíme tuto hodnotu s~nejmen¹í hodnotou podstromu jeho pravého syna) -- v tomto pøípadì na~klíè posledního vnitøního vrcholu, proto¾e listy jsou vnìj¹í vrcholy bez dat.
+\item{-} pøevedeme na~delete z~listu (stejný postup jako u~binárního stromu: jestli¾e to není list, prohodíme tuto hodnotu s~nejmen¹í hodnotou podstromu jeho pravého syna) -- v tomto pøípadì na~klíè posledního vnitøního vrcholu, proto¾e listy jsou vnìj¹í vrcholy bez dat.
\itemize\ibull
-\:pokud má vrchol, ze~kterého odebíráme stále $a-1$ klíèù, mù¾eme skonèit
-\:pokud má vrchol ($V$), ze~kterého odebíráme $a-2$ klíèù a~jeho levý sousední vrchol ($L$) alespoò $a$ klíèù (klíè otce oddìlující tyto vrcholy oznaème $x$):
+\:pokud má vrchol, ze~kterého odebíráme, stále $a-1$ klíèù, mù¾eme skonèit
+\:pokud má vrchol $V$, ze~kterého odebíráme, $a-2$ klíèù a~jeho levý sousední vrchol $L$ alespoò $a$ klíèù (klíè otce oddìlující tyto vrcholy oznaème $x$):
\endlist
\algo
-\:sma¾eme nejvìt¹í klíè levého sousedního vrcholu ($L$) a~nahradíme tím klíè otce obou vrcholù (nahradíme $x$ za~tuto hodnotu)
-\:pùvodní klíè otce ($x$) pøidáme jako nejmen¹í klíè odebíranému vrcholu~($V$)
+\:sma¾eme nejvìt¹í klíè levého sousedního vrcholu $L$ a~nahradíme tím klíè otce obou vrcholù (nahradíme $x$ za~tuto hodnotu)
+\:pùvodní klíè otce ($x$) pøidáme jako nejmen¹í klíè odebíranému vrcholu~$V$
\:tím mají oba tyto vrcholy $a-1$ klíèù a mù¾eme skonèit
\endalgo
\abpics{delete21}{delete22}
\itemize\ibull
-\:pokud má vrchol, z kterého odebíráme ($V$) $a-2$ klíèù a jeho levý sousední vrchol ($L$) $a-1$ klíèù (klíè otce oddìlující tyto vrcholy oznaème $x$):
+\:pokud má vrchol $V$, z kterého odebíráme, $a-2$ klíèù a jeho levý sousední vrchol $L$ má $a-1$ klíèù (klíè otce oddìlující tyto vrcholy oznaème $x$):
\endlist
\algo
\:slouèíme $V$,$x$,$L$ do jednoho vrcholu
\>{\I Poznámka:} Dojdeme-li takto a¾ do koøene, na místo klíèe odebraného z koøene lze pou¾ít nejmen¹í nebo nejvìt¹í klíè novì slouèeného podstromu. Ten odebrat lze, proto¾e po slouèení (které bylo pøíèinou této situace), je v nejni¾¹ím vrcholu $2a-2$ klíèù.
+
\>{\I Èasová slo¾itost:} $$O(b\cdot \log_a n)$$
\bye