From c928c4dfc58cfb8b169fa9a4576e94be0e3ff093 Mon Sep 17 00:00:00 2001 From: Florian Unger <florian.unger@fau.de> Date: Fri, 21 Jun 2024 14:28:11 +0200 Subject: [PATCH] typos entfernt --- 201_mergesort.tex | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/201_mergesort.tex b/201_mergesort.tex index fd575f3..c2e04c1 100644 --- a/201_mergesort.tex +++ b/201_mergesort.tex @@ -49,6 +49,7 @@ Wobei \texttt{merge} folgendermaßen definiert wird: } \KwRet $\mathcal{A}$ \end{algorithm} +%TODO: REWRITE TO LISTS \subsubsection{Laufzeit} Die Laufzeit der Algorithmen ist nicht vom konkreten Input, sondern nur von der Länge des Inputs abhängig. Worst, best @@ -84,11 +85,11 @@ Wir müssen also nurnoch den asymptotischen Aufwand für die rekursiven Aufrufe Wir wissen, da $T_\text{m} \in \mathcal{O}(n)$, dass es ein $n_0 \in \mathbb{N}$ und $c \in \mathbb{R}$ gibt, sodass $T_\text{m}(n) \leq c n$ für \emph{alle} $n > n_0$. Insbesondere also für die nächstgrößere Zweierpotenz, sodass wir o.B.d.A. annehmen können: $n_0 = 2^k_0$ für ein $k_0 \in \mathbb{N}$. Für alle $n \leq n_0$ können wir den Aufwand von -$T_\text{m}(n)$ zudem durch die Konstante $m = \max(\{T_\text{m}(i) | i \in \{0, \dots, n_0\}\})$ abschätzen. +$T_\text{m}(n)$ zudem durch die Konstante $m = \max(\{T_\text{m}(i) \mid i \in \{0, \dots, n_0\}\})$ abschätzen. Das erlaubt es uns, obige Summe aufzuspalten: \[ - \sum_{l=0}^{k-1} 2^l T_\text{m}\left( \frac{n}{2^l} \right) = + \sum_{l=0}^{k-1} 2^l T_\text{m}\left( \frac{n}{2^l} \right) ≤ \sum_{l=0}^{k-k_0} 2^l T_\text{m}\left( \frac{n}{2^l} \right) + \underbrace{\sum_{l=k-k_0+1}^{k-1} 2^l T_\text{m}\left( \frac{n}{2^l} \right)}_{\leq 2^k m \in \mathcal{O}(n)}. \] @@ -106,6 +107,6 @@ Dieser Term dominiert also alle anderen Terme, und damit $T_\text{ms} \in \mathc In der hier vorgestellten Variante muss bei jedem Aufruf von \texttt{merge} ein neues Array angelegt werden. Damit braucht $\texttt{mergesort}$ asymptotisch $\mathcal{O}(n)$ zusätzlichen Speicher. -Es gibt allerdings auch weiterentwicklungen, die mit $\mathcal{O}(1)$ Speicher auskommen (z.B. TimSort oder blocksort). +Es gibt allerdings auch Weiterentwicklungen, die mit $\mathcal{O}(1)$ Speicher auskommen (z.B. TimSort oder blocksort). -- GitLab