1
0

Added second pseudo-algorithm

This commit is contained in:
Ruben
2019-05-22 11:01:59 +02:00
parent eb2e9172a9
commit f77af9c317
2 changed files with 42 additions and 6 deletions

1
.gitignore vendored
View File

@@ -581,6 +581,7 @@ fabric.properties
*.aux
*.log
*.save
*.synctex.gz
# End of https://www.gitignore.io/api/rider,csharp,visualstudio

View File

@@ -4,6 +4,7 @@
\usepackage[T1]{fontenc}
\usepackage[dutch]{babel}
\usepackage[linesnumbered, algoruled, lined]{algorithm2e}
\usepackage{float}
\title{Project: Snijdende cirkels}
\author{Arthur Bols \& Ruben Van Laer}
@@ -13,14 +14,16 @@
\maketitle
\section{Inleiding}
In dit practicum trachten we aan de hand van algoritmes met vooropgestelde complexiteiten de snijpunten van een set van gegeven cirkels te bepalen.
\section{Snijding van twee cirkels}
\section{Hoogniveau beschrijving van de algoritmen}
\subsection{Simpel algoritme}
\begin{algorithm}
$S \gets \emptyset$\\
$cirkels$: lijst van cirkels met attributen het middelpunt en de straal.\\
\For{$c_1$ in $cirkels$}{
\For{$c_2$ in $cirkels$}{
\subsection{Simpel algoritme $O(N^2)$}
\begin{algorithm}[H]
\{$cirkels$: lijst van cirkels met een middelpunt en een straal\}\\
$S \gets \emptyset$ \{$S$: lijst met alle snijpunten\}\\
\For{iedere $c_1$ in $cirkels$}{
\For{iedere $c_2$ in $cirkels$}{
$snpt \gets$ Snijpunten($c_1$,$c_2$)\\
\If{$snpt \neq \emptyset$}{
Voegtoe($S$,$snpt$)
@@ -29,6 +32,38 @@
}
\caption{Simpel Algoritme}
\end{algorithm}
\subsection{Doorlooplijnalgoritme $O(N^2)$}
\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$: lijst met cirkels die snijden met de doorlooplijn\}\\
\While{$E \neq \emptyset$}{
$e \gets$ Kleinste($E$)\\
Verwijder($E$, $e$)\\
\If{$e$ is een beginpunt}{
$c \gets$ Cirkel($e$)\\
\For{iedere $c_i$ in $A$}{
$snpt \gets$ Snijpunten($c$,$c_i$)\\
\If{$snpt \neq \emptyset$}{
Voegtoe($S$,$snpt$)
}
}
Voegtoe($A$, $c$)\\
}
\If{$e$ is een eindpunt}{
$c \gets$ Cirkel($e$)\\
Verwijder($A$, $c$)
}
}
\caption{Doorlooplijnalgoritme $O(N^2)$}
\end{algorithm}
\section{Beschrijving experimenten en correctheid}
\section{Bespreking resultaten en rekentijden}