diff --git a/101_Einfuehrung.tex b/101_Einfuehrung.tex
index 4d3834e4cb01af91af33d1dc56a26294e7b19b7c..936111b4623a847ce0d8e5e9e51c8c830f1221ff 100644
--- a/101_Einfuehrung.tex
+++ b/101_Einfuehrung.tex
@@ -26,7 +26,7 @@ genannt.
   \For{$i \leftarrow 2$ \KwTo n}{
     $h \leftarrow A_i$ \;
     $j \leftarrow i-1$ \;
-    \While{$A_j>h$ \textbf{and} $j>0$}{
+    \While{$A_j>h$ \textbf{and} $j≥0$}{
       $A_{j+1} \leftarrow A_j$ \;
       $j \leftarrow j-1$ \;
     }
@@ -61,7 +61,7 @@ Pseudocode & Zeitkonstante & Wiederholungen\\
 \hline 
 \hspace{0.8cm} $j \leftarrow i-1$                                           & $c_3$ & $\left(n-1\right)$ \\
 \hline 
-\hspace{0.8cm} $\textbf{while } A_j > h \textbf{ and } j>0 \textbf{ do}$    & $c_4$ & $\sum_{i=2}^n t_i$ \\
+\hspace{0.8cm} $\textbf{while } A_j > h \textbf{ and } ≥>0 \textbf{ do}$    & $c_4$ & $\sum_{i=2}^n t_i$ \\
 \hline 
 \hspace{1.3cm} $A_{j+1} \leftarrow A_j$                                     & $c_5$ & $\sum_{i=2}^n(t_i-1)$ \\
 \hline 
diff --git a/102_Asymptotische_Schranken.tex b/102_Asymptotische_Schranken.tex
index 4565f9fa3373afe99e82ded6d82de1ad59de989b..08ea872c1df94d35d7d93a6e348abf5455929e2e 100644
--- a/102_Asymptotische_Schranken.tex
+++ b/102_Asymptotische_Schranken.tex
@@ -8,7 +8,7 @@ Programms als auch der Speicherbedarf $S(n)$ meist durch \emph{asymptotische Sch
 Wir schließen das Kapitel mit einer formaleren Definition, wie wir die Laufzeit (und Speicherverbrauch) 
 eines Programms in Abhängigkeit von der Inputlänge $n$ beschreiben:
 \begin{definition}[Laufzeit $T(n)$ und Speicherverbrauch $S(n)$]
-  Sei $I$ der Input für unseren Algorithmus, $\abs{I} < \infty$ die Größe des Inputs. Sei $T(I) \in \mathbb{R}^+$ die
+  Sei $I$ der Input für unseren Algorithmus, $\abs{I} < ∞$ die Größe des Inputs. Sei $T(I) \in \mathbb{R}^+$ die
   Laufzeit, die unser Algorithmus für Input $I$ benötigt. Dann definieren wir
   \begin{itemize}
     \item $T_{\text{wc}}(n) = \max\{T(I) : \abs{I} = n\}$ ist die \emph{worst case} Laufzeit.
@@ -32,7 +32,7 @@ Der Zugänglichkeit zuliebe wurde in dem Beispiel $T^{\text{is}}_{\text{avg}}(n)
 Definition berechnet.
 Nun kann man, bei sehr großem $n$, sowohl die Konstanten $a_0$ und $a_2$ als auch den Term $a_1 n$ vernachlässigen.
 
-Mathematisch präzisiert wird das in der sogenannten $\mathcal{O}$-, $\Theta$- und $\Omega$-Notation.
+Mathematisch präzisiert wird das in der sogenannten $\mathcal{O}$-, $Θ$- und $Ω$-Notation.
 
 \subsection{Direkte Definition der asymptotischen Schranken}
 Wir betrachten grundsätzlich Funktionen $f(n),g(n):\mathbb{N}\rightarrow\mathbb{R}^{+}$. Eine Funktion $g(n)$ ist eine
@@ -51,29 +51,29 @@ aber meinen damit stets $f \in \mathcal{O}(g)$. Es wird oftmals auch die Notatio
 
 Analog dazu die untere Schranke: Wieder müssen $c \in \mathbb{R}^+$ und $n_0 \in \mathbb{N}$ existieren, sodass für alle
 fortfolgenden $n \in \mathbb{N}$ $f(n)$ stets \emph{größer} ist $c g(n)$.
-\begin{definition}[Asymptotisch untere Schranke: $\Omega$-Notation]
+\begin{definition}[Asymptotisch untere Schranke: $Ω$-Notation]
   Seien $f,g: \mathbb{N} \rightarrow \mathbb{R}^+$ zwei positive Funktionen. Wir definieren die Menge der von $g$ asymptotisch
   nach unten beschränkten Funktionen 
   \[
-    \Omega(g) := \{f\ |\ \exists c \in \mathbb{R}^+, \exists n_o \in \mathbb{N}, \forall n > n_0: f(n) \ge c g(n)\}.
+    Ω(g) := \{f\ |\ \exists c \in \mathbb{R}^+, \exists n_o \in \mathbb{N}, \forall n > n_0: f(n) \ge c g(n)\}.
   \]
 \end{definition}
-Wir sagen wahlweise $f$ liegt in $\Omega$ von $g$, $f$ ist asymptotisch von $g$ nach unten beschränkt, etc.,
-aber meinen damit stets $f \in \Omega(g)$. Es wird oftmals auch die Notation $f = \Omega(g) :\Leftrightarrow f
-\in \Omega(g)$ benutzt.
+Wir sagen wahlweise $f$ liegt in $Ω$ von $g$, $f$ ist asymptotisch von $g$ nach unten beschränkt, etc.,
+aber meinen damit stets $f \in Ω(g)$. Es wird oftmals auch die Notation $f = Ω(g) :\Leftrightarrow f
+\in Ω(g)$ benutzt.
 
 Die Definition der beidseitigen Schranke überrascht nun nichtmehr:
-\begin{definition}[Asymptotisch exakte Schranke: $\Theta$-Notation]
+\begin{definition}[Asymptotisch exakte Schranke: $Θ$-Notation]
   Seien $f,g: \mathbb{N} \rightarrow \mathbb{R}^+$ zwei positive Funktionen. Wir definieren die Menge der von $g$ asymptotisch
   exakt beschränkten Funktionen 
   \[
-    \Theta(g) := \{f\ |\ \exists c_1, c_2 \in \mathbb{R}^+, \exists n_o \in \mathbb{N}, \forall n > n_0:
+    Θ(g) := \{f\ |\ \exists c_1, c_2 \in \mathbb{R}^+, \exists n_o \in \mathbb{N}, \forall n > n_0:
       c_1 g(n) \le f(n) \le c_2 g(n)\}.
   \]
 \end{definition}
-Wir sagen wahlweise $f$ liegt in $\Theta$ von $g$, $f$ ist asymptotisch (exakt) von $g$ beschränkt, etc.,
-aber meinen damit stets $f \in \Theta(g)$. Es wird oftmals auch die Notation $f = \Theta(g) :\Leftrightarrow f
-\in \Theta(g)$ benutzt.
+Wir sagen wahlweise $f$ liegt in $Θ$ von $g$, $f$ ist asymptotisch (exakt) von $g$ beschränkt, etc.,
+aber meinen damit stets $f \in Θ(g)$. Es wird oftmals auch die Notation $f = Θ(g) :\Leftrightarrow f
+\in Θ(g)$ benutzt.
 %
 \begin{figure}[!htb]
   \label{fig:o-omega-notation}
@@ -105,7 +105,7 @@ aber meinen damit stets $f \in \Theta(g)$. Es wird oftmals auch die Notation $f
         \draw[name path=n0, dashed] (2, 0) -- (2, 4) node[below, pos=0] {$n_0$};
       \end{axis}
     \end{tikzpicture}
-    \caption{$f \in \Omega(g)$, mit $n_0 = 2$}
+    \caption{$f \in Ω(g)$, mit $n_0 = 2$}
   \end{subfigure}
   \vskip 25pt
 %
@@ -123,149 +123,140 @@ aber meinen damit stets $f \in \Theta(g)$. Es wird oftmals auch die Notation $f
       \end{axis}
     \end{tikzpicture}
     \centering
-    \caption{$f \in \Theta(g)$, wobei $g(n) = n^2$, $c_1=0.3$, $c_2=2$ und $f(n)=n^2+75\sin(2n)$. Ab $n_0 = 9$ wird
+    \caption{$f \in Θ(g)$, wobei $g(n) = n^2$, $c_1=0.3$, $c_2=2$ und $f(n)=n^2+75\sin(2n)$. Ab $n_0 = 9$ wird
     $f$ von $c_1g$ und $c_2g$ abgeschätzt.}
   \end{subfigure}
 \end{figure}
 
 Man sieht direkt, dass 
 \[
-  f \in \Theta(g) \Leftrightarrow f \in \mathcal{O}(g) \text{ und } f \in \Omega(g).
+  f \in Θ(g) \Leftrightarrow f \in \mathcal{O}(g) \text{ und } f \in Ω(g).
 \]
 
-Wir können nun direkt mit dieser Definition den Asymptotischen Aufwand von $T^{\text{is}}_{\text{avg}}(n)$
+Wir können nun direkt mit dieser Definition den Asymptotischen Aufwand von $T^{\text{is}}_{\text{bc}}(n)$
 klassifizieren:
-\begin{example}[$T^{\text{is}}_{\text{avg}} \in \Theta(n^2)$]
-  Zuerst zeigen wir, dass $T^{\text{is}}_{\text{avg}} = a_2 n^2 + a_1 n + a_0 \in \mathcal{O}(n^2)$:
-
-  Gesucht werden $c \in \mathbb{R}^+, n_0 \in \mathbb{N}$ sodass für alle $n > n_0:$
+\begin{example}[$T^{\text{is}}_{\text{bc}} \in O(n)$]
+  Die best-case-Laufzeit von $\texttt{insertionsort}$ ist $T^{\text{is}}_{\text{bc}}(n) = w_0 + w_1 n$.
+  Es gilt 
   \[
-    a_2 n^2 + a_1 n + a_0 \leq c n^2.
+    w_0 + w_1 n ≤ n + w_1 n = (w_1 + 1) n \text{ für alle } n ≥ w_0.
   \]
-  Wähle mit $m = \max(\{a_0, a_1, a_2\})$ die Konstante $c = 3m$. Dann gilt für $n > 1$:
-  \begin{align*}
-    c n^2 
-    &=      mn^2      + mn^2    + mn^2 \\
-    &\geq   a_2 n^2   + a_1 n   + a_0,
-  \end{align*}
-  da $n^2 \geq n$ und $n^2 \geq 1$ für alle $n > 1$.
-
-  Für $T^{\text{is}}_{\text{avg}} \in \Omega(n^2)$ nehmen wir noch an, dass $a_0, a_1, a_2 > 0$. Dann ist mit $c = a_2$
-  klar: 
+  Setzen wir als $c = w_1 + 1$ und $n_0 = w_0$, so gilt $w_0 + w_1 n ≤ c n$ für alle $n ≥ n_0$ und damit
+  $T^{\text{is}}_{\text{bc}} \in Θ(n)$.
+\end{example}
+Dieses Beispiel zeigt, das man die Quantorendefinition zwar direkt nutzen kann, aber dabei jedes mal nachdenken muss,
+wie $c$ und $n_0$ geschickt zu wählen sind. 
+
+Um in Zukunft asymptotische Schranken genauer zu bestimmen, formulieren wir ein paar Rechenregeln:
+\begin{lemma}
+  Seien $f, f', g, g', h: \mathbb{N} \rightarrow \mathbb{R}^+$.
+  \begin{labeling}{Multiplikation\ \ }
+  \item[Addition] Seien $f \in \mathcal{O}(g)$ und $f' \in \mathcal{O}(g')$. Sei $g ∈ \mathcal{O}(g')$. Dann ist $f+f'
+    \in \mathcal{O}(g')$.
+    \item[Subtraktion] Seien $f, f' \in \mathcal{O}(g)$. Dann gilt  $f-f' \in \mathcal{O}(g)$.
+    \item[Multiplikation] Seien $f \in \mathcal{O}(g)$ und $f' \in \mathcal{O}(g')$. Dann gilt $ff' \in
+      \mathcal{O}(gg')$.
+    \item[Transitivität] Seien $f \in \mathcal{O}(g)$ und $g \in \mathcal{O}(h)$. Dann ist $f \in \mathcal{O}(h)$.
+  \end{labeling}
+  \label{lemma:asymptotische_rechenregeln}
+\end{lemma}
+Anmerkung: Gilt die zusätzliche Bedingung $g ∈ \mathcal{O}(g')$ nicht (und in keine der beiden Richtungen), so gilt
+immernoch $f+f' ∈ \mathcal{O}(m)$, wobei $m(n) = \text{max}(g(n), g'(n))$ das elementweise Maximum von $g$ und $g'$ ist.
+\begin{proof}
+  Wir betrachten zur Veranschaulichung die Transitivität genauer.
+  Nach Voraussetzung gibt es $c, c' \in \mathbb{R}^+$ und $n_0, n'_0 \in \mathbb{N}$, sodass $f \le cg(n)$ für alle
+  $n > n_0$ und $g \le c'h(n)$ für alle $n > n'_0$. Wir können also mit $N_0 := \max(n_0, n'_0)$ und $C := cc'$ zeigen:
+  $f \le cg(n) \le Ch(n)$ für alle $n > N_0$.
+
+  Die anderen Rechenregeln verlaufen meist analog und sind eine gute Fingerübung.
+\end{proof}
+Es ist eine gute Übung, sich zu überlegen, welche der obigen Rechenregeln auch für $Θ$-Notation gelten.
+
+\begin{lemma}
+  Ist $k ≤ l$, so gilt $\mathcal{O}(n^k) ⊆ \mathcal{O}(n^l)$.
+  \label{lemma:rechenregel_potenzen}
+\end{lemma}
+\begin{proof}
+  Übungsaufgabe.
+\end{proof}
+
+Mit den zwei vorherigen Lemmata können wir nun allgemeine Polynome abschätzen:
+\begin{lemma}
+  Sei $f(n) = a_k n^k + a_{k-1} n^{k-1} + \cdots + a_1 n + a_0$ ein Polynom von Grad~$k$. Dann gilt:
   \[
-    c n^2 \leq a_2 n^2 + a_1 n + a_0 \text{ für alle } n \geq 0.
+    f(n) ∈ Θ(n^k)    
   \]
-  Auch ohne die Einschränkung $a_0, a_1, a_2 > 0$ gilt $T^{\text{is}}_{\text{avg}} \in \Theta(n^2)$, aber es ist eine
-  für Laufzeitfunktionen sinnvolle Einschränkung.
-\end{example}
+  \label{lemma:polynome}
+\end{lemma}
+\begin{proof}
+  Es ist $a_i n^i ∈ \mathcal{O}(n^i)$. Das kann man entweder direkt zeigen (wähle $c = a_i$) oder via der
+  Multiplikationsregel. Desweiteren dominiert $x^k$ als größte Potenz alle anderen Summanden (Lemma~
+  \ref{lemma:rechenregel_potenzen}). Nun kann man iterativ die Summenregel anwenden, bis nur noch $n^k$ übrig bleibt.
 
-\begin{example}[$6n^3 \notin \mathcal{O}(n^2)$]
-  Als nächstes schauen wir, ob $6n^3$ asymptotisch langsamer wächst als $n^2$. Gehen wir also davon aus, dass es
-  $c \in \mathbb{R}^+$ und $n_0 \in \mathbb{N}$ gäbe, sodass $6n^3 \leq cn^2$ für alle $n > n_0$. Dann können wir die
-  Ungleichung aber mit $\frac{1}{6n^2}$ multiplizieren und hätten $n \leq \frac{c}{6}$ für alle $n > n_0$. Da $c$ eine
-  Konstante ist, ist dies ein Widerspruch.
+  Die andere Abschätzungsrichtung geschieht ähnlich.
+\end{proof}
+\begin{example}
+  Mit Lemma \ref{lemma:polynome} ist klar: $T_{\text{wc}}^{\text{is}}(n) ∈ \mathcal{O}n^2$.
 \end{example}
 
-Betrachten wir nun ein spannenderes Beispiel: Ist $\ln(n) \in \mathcal{O}(\sqrt{n})$? Mit unserer Quantorendefinition
-kommen wir erstmal nicht weiter. Aber gefühlt wächst $\ln$ langsamer! Wir können ja die kontinuierlichen Varianten
-$\ln(x)$ und $\sqrt{x}$ betrachten, die die Ableitung $\frac{1}{x}$ respektive $\frac{1}{2\sqrt{x}}$ haben. Anscheinend
-wächst der Logarithmus ja wirklich bedeutend langsamer! Das Grenzwertkriterium (und die Regel von L'Hôpital) hilt uns
-dabei enorm:
-
 \subsection{Grenzwertkriterium}
-Oftmals ist Nachweis gewissen asymptotischen Verhaltens auf diese direkte Art recht umständlich. Existiert der Grenzwert
+Betrachten wir nun ein spannenderes Beispiel: Ist $\ln(n) \in \mathcal{O}(\sqrt{n})$?
+Mit unserer Quantorendefinition kommen wir erstmal nicht weiter.
+Aber hieß es nicht in der Schule, der natürliche Logarithmus $\ln$ wachse langsamer als jede andere Funktion?
+
+Um diese Frage beantworten zu können, führen wir das Grenzwertkriterium ein: Existiert der Grenzwert
 $\frac{f(n)}{g(n)}$ im Infinitesimalen, so können wir das Grenzwertverhalten direkt ablesen:
 \begin{lemma}
   \label{lemma_asymptotic_limit}
   Seien $f,g: \mathbb{N} \rightarrow \mathbb{R}^+$ zwei positive Funktionen. Existiert der Grenzwert $\lim_{n
-  \rightarrow \infty} \frac{f(n)}{g(n)} = K$, so gilt:
+  \rightarrow ∞} \frac{f(n)}{g(n)} = K$, so gilt:
   \begin{itemize}
-    \item Ist $0 \le K <    \infty$, so folgt $f \in \mathcal{O}(g)$
-    \item Ist $0 <   K \leq \infty$, so folgt $f \in \Omega(g)$
-    \item Ist $0 <   K <    \infty$, so folgt $f \in \Theta(g)$
+    \item Ist $0 \le K <    ∞$, so folgt $f \in \mathcal{O}(g)$,
+    \item Ist $0 <   K \leq ∞$, so folgt $f \in Ω(g)$,
+    \item Ist $0 <   K <    ∞$, so folgt $f \in Θ(g)$.
   \end{itemize}
 \end{lemma}
-Damit können wir das Logarithmusbeispiel lösen:
-\begin{example}[$\ln(n) \in \mathcal{O}(\sqrt{n})$]
-  Wir betrachten weiterhin die kontinuierlichen Versionen. Dann gilt:
-  \[
-    \lim_{x \rightarrow \infty} \frac{\ln(x)}{\sqrt{x}} = \frac{\infty}{\infty},
-  \]
-  wir müssen uns also um die Regel von L'Hôpital bemühen. Nach dieser existiert obiger Limes, solange der Limes der
-  Ableitungen existiert.
+\begin{proof}
+  Die Beweisidee ist die folgende:
   \[
-    \lim_{x \rightarrow \infty} \frac{\ln(x)}{\sqrt{x}} = 
-    \lim_{x \rightarrow \infty} \frac{\frac{\partial \ln(x)}{\partial x}}{\frac{\partial \sqrt{x}}{\partial x}} = 
-    \lim_{x \rightarrow \infty} \frac{2\sqrt{x}}{x} = 
-    \lim_{x \rightarrow \infty} \frac{2}{\sqrt{x}} = 
-    0.
+    \lim_{n \rightarrow ∞} \frac{f(n)}{g(n)} = K \text{ impliziert }
+    \forall ε > 0 \  \exists n_0 ∈ \mathbb{N} \text{ sodass } \frac{f(n)}{g(n)} ∈ B_ε(K).
   \]
-\end{example}
+  Wir für gegebenes $c$ wählen wir uns also $ε$ sodass $c = \frac{1}{K+ε}$ und $n_0$ ist dann durch die Definition des
+  Limes gegeben.
+\end{proof}
+Zu beachten ist, dass dies keine Äquivalente Formulierung darstellt, siehe Unterkapitel \ref{subsection:limes_superior}.
 
-Zu beachten ist, dass die Umkehrung nicht unbedingt gilt, z.B., $f(n) = \sin(\frac{n}{100}) + 1$. Es gilt
-$f(n)=\mathcal{O}(1)$, aber der Grenzwert $\lim_{n \to \infty} \frac{f(n)}{1}$ existiert nicht. Das ist 
-die Motivation für die folgende Alternativdefinition:
 
-\subsection{Definition der asymptotischen Schranken über den Limes}
-Wir erinnern uns an die Definition des Limes superior bzw Limes inferior:
-\begin{definition}[Limes superior und Limes inferior]
-  Sei $f: \mathbb{N} \rightarrow \mathbb{R}^+$ eine positive Funktion. Wir definieren
+Damit können wir das Logarithmusbeispiel lösen:
+\begin{example}[$\ln(n) \in \mathcal{O}(\sqrt{n})$]
+  Wir berechnen:
   \[
-    \limsup_{n \rightarrow \infty} f(n) := \inf_{n_0 \in \mathbb{N}} \sup_{n \ge n_0} g(n)
+    \lim_{n \rightarrow ∞} \frac{\ln(x)}{\sqrt{x}} = \frac{∞}{∞}.
   \]
-  und analog
+  Hier kommen wir erstmal nicht weiter. Wir erinnern uns an die Regel von L'Hôspital: Nach dieser existiert
+  obiger Limes, solange der Limes der Ableitungen existiert. Wir betrachten also die kontinuerlichen Varianten obiger
+  Funktionen, $\ln(x)$ und $\sqrt{x}$:
   \[
-    \liminf_{n \rightarrow \infty} f(n) := \sup_{n_0 \in \mathbb{N}} \inf_{n \ge n_0} g(n)
+    \lim_{x \rightarrow ∞} \frac{\ln(x)}{\sqrt{x}} = 
+    \lim_{x \rightarrow ∞} \frac{\frac{\partial \ln(x)}{\partial x}}{\frac{\partial \sqrt{x}}{\partial x}} = 
+    \lim_{x \rightarrow ∞} \frac{2\sqrt{x}}{x} = 
+    \lim_{x \rightarrow ∞} \frac{2}{\sqrt{x}} = 
+    0.
   \]
-\end{definition}
-Für uns der größte Vorteil ist, dass unter den gegebenen Umständen sowohl der Limes superior als auch der Limes inferior
-stets existieren und Werte in $\mathbb{R}^+ \cup \{\infty\}$ annehmen.
-
-Damit können wir nicht nur Kriterien für asymptotisches Wachstum benennen, sondern sogar Äquivalenzen.
-\begin{theorem}
-  Seien $f,g: \mathbb{N} \rightarrow \mathbb{R}^+$ positive reelle Funktionen. Es gilt
-  \begin{itemize}
-    \item $f \in \mathcal{O}(g) \Leftrightarrow \limsup_{n \rightarrow \infty} \frac{f(n)}{g(n)} < \infty$,
-    \item $f \in \Omega(g) \Leftrightarrow \liminf_{n \rightarrow \infty} \frac{f(n)}{g(n)} > 0$,
-    \item $f \in \Theta(g) \Leftrightarrow \limsup_{n \rightarrow \infty} \frac{f(n)}{g(n)} < \infty \text{ und }
-      \liminf_{n \rightarrow \infty} \frac{f(n)}{g(n)} > 0$.
-  \end{itemize}
-  \label{theorem:limit_definition}
-\end{theorem}
-
-
-\subsection{Rechenregeln für die $\mathcal{O}$-Notation}
-\begin{lemma}
-  Seien $f, f', g, g', h: \mathbb{N} \rightarrow \mathbb{R}^+$.
-  \begin{labeling}{Multiplikation\ \ }
-    \item[Addition] Seien $f \in \mathcal{O}(g)$ und $f' \in \mathcal{O}(g')$. Dann ist $f+f' \in \mathcal{O}(m)$, wobei
-      $m(n) = \text{max}(g(n), g'(n))$ die Funktion in Abhängigkeit von $g$ und $g'$ ist, welche Elementweise das Maximum
-      nimmt.
-    \item[Subtraktion] Seien $f, f' \in \mathcal{O}(g)$. Dann gilt  $f-f' \in \mathcal{O}(g)$.
-    \item[Multiplikation] Seien $f \in \mathcal{O}(g)$ und $f' \in \mathcal{O}(g')$. Dann gilt $ff' \in
-      \mathcal{O}(gg')$.
-    \item[Transitivität] Seien $f \in \mathcal{O}(g)$ und $g \in \mathcal{O}(h)$. Dann ist $f \in \mathcal{O}(h)$.
-  \end{labeling}
-  \label{lemma:asymptotische_rechenregeln}
-\end{lemma}
-Zur Additionsregel sei angemerkt, dass in vielen praktischen Fällen meist $g \in \mathcal{O}(g')$ oder andersherum gilt.
-Dann kann man $m$ einfach durch $g'$ (bzw $g$) ersetzen.
-
-\begin{proof}
-  Wir betrachten zur Veranschaulichung die Transitivität genauer.
-  Nach Voraussetzung gibt es $c, c' \in \mathbb{R}^+$ und $n_0, n'_0 \in \mathbb{N}$, sodass $f \le cg(n)$ für alle
-  $n > n_0$ und $g \le c'h(n)$ für alle $n > n'_0$. Wir können also mit $N_0 := \max(n_0, n'_0)$ und $C := cc'$ zeigen:
-  $f \le cg(n) \le Ch(n)$ für alle $n > N_0$.
+  Da der kontinuierliche Limes per Definition bedeutet, das alle möglichen diskreten Teilfolgen konvergieren,
+  konvergiert insbesondere die Teilfolge $0,1,2, \cdots$ und es unser obiger diskreter Limes ist auch 0. Durch das
+  Grenzwertkriterium wissen wir nun: $\log n ∈ \mathcal{O}(\sqrt{n})$.
+\end{example}
 
-  Die anderen Rechenregeln verlaufen meist analog und sind eine gute Fingerübung.
-\end{proof}
+Das diese Relation für nur für den natürlichen Logarithmus gilt, sondern für jede Basis, zeigt 
 \begin{lemma} Die Basis des Logarithmus ist für asymptotische Betrachtung nicht interessant. Seien $b, b' \in
   \mathbb{R}^+$, dann gilt:
   \[
-    \log_b \in \Theta(\log_{b'})  \]
+    \log_b \in Θ(\log_{b'})  \]
   Insbesondere gilt für den häufig vorkommenden Logarithmus zur Basis $2$:
   \[
-    \log_2 \in \Theta(\ln)
+    \log_2 \in Θ(\ln)
   \]
   \label{lemma:basis_logarithmus}
 \end{lemma}
@@ -278,23 +269,68 @@ Dann kann man $m$ einfach durch $g'$ (bzw $g$) ersetzen.
   vernachlässigbar ist.
 \end{proof}
 
-\subsection{Beispiele}
-Wir betrachten nun einige Beispiele, die die Relation gängiger Wachstumskategorien im Beispiel belegen:
+\subsection{Die gängigsten Wachstumsklassen}
+Auch wenn es vollkommen korrekt sein mag zu sagen, dass dieser oder jender Algorithmus in $\mathcal{O}(n^2 + 2n)$ liegt,
+ist es nicht die übliche Notation. Hier ist eine Auflistung der gebräuchlichsten Wachstumsklassen im Kontext der
+Informatik. Die Liste ist aufsteigend gestaltet, und alles Teilmengenbeziehungen sind echt,
+also mit $0 < c_1 < 1 c_2 $ und $b > 1$: 
+\[
+  \mathcal{O}(1) \subset \mathcal{O}(\log(n)) \subset \mathcal{O}(n^{c_1}) \subset \mathcal{O}(n) \subset
+  \mathcal{O}(n \log n) \subset \mathcal{O}(n^{c_2}) \subset \mathcal{O}(b^n) \subset \mathcal{O}(n!).
+\]
+
+\vspace{1cm}
+
+\noindent
+\begin{tabular}{|c|c|c|c|}
+\hline 
+Name & $\mathcal{O}$-Notation & Bsp.-Funktion & Bsp.-Algorithmus                          \\
+\hline
+\hline 
+konstant & $\mathcal{O}(1)$ & 3 & Addition                                                \\
+\hline 
+logarithmisch & $\mathcal{O}(\log(n))$ & $\log_2(n), \ln(n)$ & Suchen                     \\
+\hline 
+Wurzelfunktion & $\mathcal{O}(n^{c}),$$0<c<1$ & $\sqrt{n},n^{\frac{1}{3}}$ & Primzahltest \\
+\hline 
+linear & $\mathcal{O}(n)$ & $3n+4$ & Maximum finden                                       \\ 
+\hline 
+linearlogarithmisch & $\mathcal{O}(n\cdot\log(n))$ & $2n\cdot \ln(n)$ & Sortieren        \\
+\hline 
+polynominal & $\mathcal{O}(n^{c}),c>1$ & $4n^{2}+7n+10$ & Matrizenoperationen             \\
+\hline 
+exponential & $\mathcal{O}(c^{n}),c>1$ & $2^{n},10^{n}$ & NP-vollst\"{a}ndige Alg.        \\
+\hline 
+Fakultät & $\mathcal{O}(n!)$ & $n!$ &                                                     \\
+\hline
+\end{tabular}
+
+Im Folgenden wollen wir einige der hier angegebenen Relationen noch Begründen:
+\begin{lemma}
+  $\mathcal{O}(n) \subset \mathcal{O}(n \log n)$.
+  Es gibt also Funktionen in $\mathcal{O}(n \log n)$, welche nicht bereits in $\mathcal{O}(n)$ liegen.
+  \label{lemma:linearlogarithmis_echt_größer}
+\end{lemma}
+\begin{proof}
+  Übungsaufgabe.
+\end{proof}
+
 \begin{example}[Polynomielles versus exponentielles Wachstum]
   Wir zeigen $n^a \in \mathcal{O}(b^n)$ für $1 < b \in \mathbb{R}$, $a > 0$. Der Einfachheit halber nehmen wir
   $a \in \mathbb{N}$ an.
 
-  Beim Betrachten des Limes des kontinuerlichen Falles $\lim_{x \rightarrow \infty} \frac{x^a}{b^x}$ stellen wir schnell
+  Beim Betrachten des Limes des kontinuerlichen Falles $\lim_{x \rightarrow ∞} \frac{x^a}{b^x}$ stellen wir schnell
   fest, dass wir $a$-mal die Regel von L'Hôpital anwenden müssen. Mit $\frac{\partial^a x^a}{\partial x^a} = a!$ und
   $\frac{\partial^a b^x}{\partial x^a} = b^x \log(b)^a$ sehen wir:
   \[
-    \lim_{x \rightarrow \infty} \frac{x^a}{b^x} =
-    \lim_{x \rightarrow \infty} \frac{a!}{b^x \log(b)^a} = 
+    \lim_{x \rightarrow ∞} \frac{x^a}{b^x} =
+    \lim_{x \rightarrow ∞} \frac{a!}{b^x \log(b)^a} = 
     0.
   \]
   Damit gilt auch für die diskrete Variante $n^a \in \mathcal{O}(b^n)$. Exponentielles Wachstum trumpft also
   polynomielles Wachstum.
 \end{example}
+
 \begin{example}[Exponentielles Wachstum versus die Fakultätsfunktion]
   Wir betrachten als Beispiel $2^n \in \mathcal{O}(n!)$. Dies geschieht wieder über die Quantorendefinition: 
   Wir wählen $c=1$ und $n_0 = 4$. Damit haben wir
@@ -310,31 +346,38 @@ Wir betrachten nun einige Beispiele, die die Relation gängiger Wachstumskategor
 \end{example}
 
 
-\subsection{Die gängigsten Wachstumsklassen}
-Hier ist eine Auflistung der gebräuchlichsten Wachstumsklassen im Kontext der Informatik. Die Liste ist aufsteigend gestaltet,
-also $\mathcal{O}(1) \subseteq \mathcal{O}(\log(n)) \subseteq \cdots \subseteq \mathcal{O}(n!)$.
+\subsection{Definition der asymptotischen Schranken über den Limes*}
+\label{subsection:limes_superior}
+Das Limeskriterium ist nur das: Ein Kriterium. Betrachten wir z.B., $f(n) = \sin(\frac{n}{100}) + 1$, so gilt
+$f(n)=\mathcal{O}(1)$, aber der Grenzwert $\lim_{n \to ∞} \frac{f(n)}{1}$ existiert nicht.
+
+Das ist die Motivation für die folgende Alternativdefinition:
+
+Wir erinnern uns an die Definition des Limes superior bzw Limes inferior:
+\begin{definition}[Limes superior und Limes inferior]
+  Sei $f: \mathbb{N} \rightarrow \mathbb{R}^+$ eine positive Funktion. Wir definieren
+  \[
+    \limsup_{n \rightarrow ∞} f(n) := \inf_{n_0 \in \mathbb{N}} \sup_{n \ge n_0} g(n)
+  \]
+  und analog
+  \[
+    \liminf_{n \rightarrow ∞} f(n) := \sup_{n_0 \in \mathbb{N}} \inf_{n \ge n_0} g(n)
+  \]
+\end{definition}
+Für uns der größte Vorteil ist, dass unter den gegebenen Umständen sowohl der Limes superior als auch der Limes inferior
+stets existieren und Werte in $\mathbb{R}^+ \cup \{∞\}$ annehmen.
+
+Damit können wir nicht nur Kriterien für asymptotisches Wachstum benennen, sondern sogar Äquivalenzen.
+\begin{theorem}
+  Seien $f,g: \mathbb{N} \rightarrow \mathbb{R}^+$ positive reelle Funktionen. Es gilt
+  \begin{itemize}
+    \item $f \in \mathcal{O}(g) \Leftrightarrow \limsup_{n \rightarrow ∞} \frac{f(n)}{g(n)} < ∞$,
+    \item $f \in Ω(g) \Leftrightarrow \liminf_{n \rightarrow ∞} \frac{f(n)}{g(n)} > 0$,
+    \item $f \in Θ(g) \Leftrightarrow \limsup_{n \rightarrow ∞} \frac{f(n)}{g(n)} < ∞ \text{ und }
+      \liminf_{n \rightarrow ∞} \frac{f(n)}{g(n)} > 0$.
+  \end{itemize}
+  \label{theorem:limit_definition}
+\end{theorem}
 
-\begin{tabular}{|c|c|c|c|}
-\hline 
-Name & $\mathcal{O}$-Notation & Bsp.-Funktion & Bsp.-Algorithmus                          \\
-\hline
-\hline 
-konstant & $\mathcal{O}(1)$ & 3 & Addition                                                \\
-\hline 
-logarithmisch & $\mathcal{O}(\log(n))$ & $\log_2(n), \ln(n)$ & Suchen                     \\
-\hline 
-Wurzelfunktion & $\mathcal{O}(n^{c}),$$0<c<1$ & $\sqrt{n},n^{\frac{1}{3}}$ & Primzahltest \\
-\hline 
-linear & $\mathcal{O}(n)$ & $3n+4$ & Maximum finden                                       \\ 
-\hline 
-linearlogarithmisch & $\mathcal{O}(n\cdot\log(n))$ & $2n\cdot \ln(n)$ & Sortieren        \\
-\hline 
-polynominal & $\mathcal{O}(n^{c}),c>1$ & $4n^{2}+7n+10$ & Matrizenoperationen             \\
-\hline 
-exponential & $\mathcal{O}(c^{n}),c>1$ & $2^{n},10^{n}$ & NP-vollst\"{a}ndige Alg.        \\
-\hline 
-Fakultät & $\mathcal{O}(n!)$ & $n!$ &                                                     \\
-\hline
-\end{tabular}
 
 
diff --git a/204_Radixsort.tex b/204_Radixsort.tex
index a597eda238e2af362eeb55c560d6c901c3ac7eb7..c82678d003bbd5fd18304f53736704e2050a0699 100644
--- a/204_Radixsort.tex
+++ b/204_Radixsort.tex
@@ -27,7 +27,7 @@ Reihenfolge). In der Sammelphase werden alle Kategorien entsprechend ihrer Ordnu
       $x \leftarrow \texttt{get}(\mathcal{Q})$ \;
       $\texttt{put}(\mathcal{Q}_{x_i}, x)$ \;
     }
-    \For{ $j \rightarrow 0$ \KwTo $b-1$}{
+    \For{ $j \leftarrow 0$ \KwTo $b-1$}{
       \While{$\mathcal{Q}_j$ \emph{is not empty}}{
         $\texttt{put}(\mathcal{Q}, \texttt{get}(\mathcal{Q}_j))$ \;
       }
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..d5048d74fce91a0afda23fe9a4dcd885ff50b18a
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,13 @@
+# default target at the top
+Datenstrukturen_und_Algorithmen.pdf:
+
+%.pdf: %.tex
+	latexmk -deps -deps-out=$*.d -xelatex --shell-escape -halt-on-error $<
+
+
+-include *.d
+
+.PHONY: clean
+clean: 
+	latexmk -pdflua  -C $(NAME)
+	rm -f *.d
diff --git a/README.md b/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..dcd5170612334fb1698eab343a1aaaf60d45890a
--- /dev/null
+++ b/README.md
@@ -0,0 +1,10 @@
+Kompilieren via `make` oder `latexmk -lualatex --shell-escpape Datenstrukturen_und_Algorithmen.tex`
+
+Skript für die Vorlesung Datenstrukturen und Algorithmen, gehalten im Sommersemester 2020-2025 von von Florian Unger (TU Graz).
+
+Das Skript basiert auf ein altes Vorlesungsskript von Oswin Aichholzer zur gleichnamigen Vorlesung (gehalten irgendwann um 1999 herum), wurde aber technisch vollkommen modernisiert und auch inhaltlich grundlegend überarbeitet. Die grundlegende Struktur wurde aber vererbt.
+
+Fehlermeldungen bitte an florian.unger@tugraz.at oder via merge requests.
+
+
+Langfristig wird eine CC-Lizenz angestrebt, wobei vorher noch urheberrechtliche Fragen geklärt werden müssen.