diff --git a/doc/Dokumentation.tex b/doc/Dokumentation.tex index 5202872..a22bcdd 100644 --- a/doc/Dokumentation.tex +++ b/doc/Dokumentation.tex @@ -137,7 +137,17 @@ werden der ArrayDeque \texttt{nextVisitNodes} hinzugefügt. \Procedure{run}{} \State $v \gets$ getSmallestNode() \Loop - \If{$v$ is null} break \EndIf + \If{$v$ is null} \Return \EndIf + \ForAll{edges} + \If{edge is passable} + \State $n \gets$ otherNode + \State $a \gets$ v.value + edge.value + \If{n.value = -1 or n.value > a} + \State n.value $\gets$ a + \State n.previous $\gets$ v + \EndIf + \EndIf + \EndFor \State $v \gets getSmallestNode()$ \EndLoop \EndProcedure @@ -162,13 +172,28 @@ Datenstruktur, die bereits nach der Größe sortiert ist, damit bei dem Zugriff auf das kleinste Element nur ein Schritt erforderlich ist. +Ein Beispiel dafür ist die \texttt{PriorityQueue}, +die wir in Hausübung 8 implementiert haben. Dort werden +Elemente beim Einfügen bereits sortiert, sodass der +Zugriff auf das (in diesem Fall) kleinste Element +in $O(1)$, also konstanter Zeit, gemacht werden kann. + $$O(n) = $$ \subsubsection{Teil (c)} +Sei $n$ die Anzahl an Knoten. + Invariante: Nach $h \geq 0$ Durchläufen gilt: +\texttt{availableNodes}, die Liste von Knoten, die +noch nicht bearbeitet wurden enthält $n - h$ Elemente. +Diese Knoten sind alle Knoten ohne die $h$ kleinsten +Knoten, also alle $n - h$ größten Knoten. +Für alle noch nicht abgearbeiteten Knoten gilt: + +Für alle abgearbeiteten Knoten gilt: \subsection{Kürzester Pfad zu allen Knoten}