1
0

Added third pseudo-algorithm

This commit is contained in:
Ruben
2019-05-22 11:22:05 +02:00
parent f77af9c317
commit 8fa0b04d86

View File

@@ -64,6 +64,43 @@
}
\caption{Doorlooplijnalgoritme $O(N^2)$}
\end{algorithm}
\subsection{Doorlooplijnalgoritme $O((N+S)log_2(N))$}
\begin{algorithm}[H]
\{$cirkels$: lijst van cirkels met een middelpunt en een straal\}\\
$E \gets \emptyset$ \{$E$: gesorteerde rij met de horizontale begin- en eindpunten van elke cirkel (ook wel de 'Events' van de doorlooplijn)\}\\
\For{iedere $c$ in $cirkels$}{
$p_1 \gets$ Beginpunt($c$)\\
$p_2 \gets$ Eindpunt($c$)\\
Voegtoe($E$, $p_1$)\\
Voegtoe($E$, $p_2$)
}
$S \gets \emptyset$ \{$S$: lijst met alle snijpunten\}\\
$A \gets \emptyset$ \{$A$: (gesorteerde) binaire boom met cirkels die snijden met de doorlooplijn\}\\
\While{$E \neq \emptyset$}{
$e \gets$ Kleinste($E$)\\
$c \gets$ Cirkel($e$)\\
Verwijder($E$, $e$)\\
\If{$e$ is een beginpunt}{
Voegtoe($A$, $c$)\\
$c_v \gets$ Voorganger($c$)\\
$c_o \gets$ Opvolger($c$)\\
$snpt \gets$ Snijpunten($c$,$c_v$)\\
\If{$snpt \neq \emptyset$}{
Voegtoe($S$,$snpt$)
}
$snpt \gets$ Snijpunten($c$,$c_o$)\\
\If{$snpt \neq \emptyset$}{
Voegtoe($S$,$snpt$)
}
}
\If{$e$ is een eindpunt}{
Verwijder($A$, $c$)
}
}
\caption{Doorlooplijnalgoritme $O(N^2)$}
\end{algorithm}
\section{Beschrijving experimenten en correctheid}
\section{Bespreking resultaten en rekentijden}