Mehr dokumentation wip
This commit is contained in:
parent
060d1be369
commit
7597e0faed
1 changed files with 26 additions and 1 deletions
|
|
@ -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}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue