summaryrefslogtreecommitdiff
path: root/content/string/string.tex
diff options
context:
space:
mode:
Diffstat (limited to 'content/string/string.tex')
-rw-r--r--content/string/string.tex23
1 files changed, 11 insertions, 12 deletions
diff --git a/content/string/string.tex b/content/string/string.tex
index 1c1c687..d8fcf29 100644
--- a/content/string/string.tex
+++ b/content/string/string.tex
@@ -7,11 +7,11 @@
\sourcecode{string/kmp.cpp}
\end{algorithm}
-\begin{algorithm}{Z-Algorithmus}
+\begin{algorithm}{Z-Funktion}
\begin{methods}[ll]
$z_i\coloneqq$ Längstes gemeinsames Präfix von $s_0\cdots s_{n-1}$ und $s_i\cdots s_{n-1}$ & \runtime{n}
\end{methods}
- Suchen: Z-Algorithmus auf \code{P\$S} ausführen, Positionen mit $z_i=\abs{P}$ zurückgeben
+ Suchen: Z-Funktion auf \code{P\$S} berechnen, Positionen mit $z_i=\abs{P}$ zurückgeben
\sourcecode{string/z.cpp}
\end{algorithm}
@@ -34,8 +34,7 @@
\begin{algorithm}{\textsc{Manacher}'s Algorithm, Longest Palindrome}
\begin{methods}
- \method{init}{transformiert \code{string a}}{n}
- \method{manacher}{berechnet Längen der Palindrome in longest}{n}
+ \method{manacher}{berechnet Längen der Palindrome}{n}
\end{methods}
\sourcecode{string/manacher.cpp}
\end{algorithm}
@@ -63,21 +62,21 @@
\end{algorithm}
\clearpage
-\begin{algorithm}{Lyndon und De-Bruijn}
+\begin{algorithm}{\textsc{Lyndon} und \textsc{De-Bruijn}}
\begin{itemize}
- \item \textbf{Lyndon-Wort:} Ein Wort das lexikographisch kleiner ist als jede seiner Rotationen.
- \item Jedes Wort kann \emph{eindeutig} in eine nicht ansteigende Folge von Lyndon-Worten zerlegt werden.
- \item Für Lyndon-Worte $u, v$ mit $u<v$ gilt, dass $uv$ auch ein Lyndon-Wort ist.
+ \item \textbf{\textsc{Lyndon}-Wort:} Ein Wort das lexikographisch kleiner ist als jede seiner Rotationen.
+ \item Jedes Wort kann \emph{eindeutig} in eine nicht ansteigende Folge von \textsc{Lyndon}-Worten zerlegt werden.
+ \item Für \textsc{Lyndon}-Worte $u, v$ mit $u<v$ gilt, dass $uv$ auch ein \textsc{Lyndon}-Wort ist.
\end{itemize}
\begin{methods}
- \method[, Durchschnitt $\Theta(1)$]{next}{lexikographisch nächstes Lyndon-Wort}{n}
- \method{duval}{zerlegt $s$ in Lyndon-Worte}{n}
+ \method[, Durchschnitt $\Theta(1)$]{next}{lexikographisch nächstes \textsc{Lyndon}-Wort}{n}
+ \method{duval}{zerlegt $s$ in \textsc{Lyndon}-Worte}{n}
\method{minrotation}{berechnet kleinste Rotation von $s$}{n}
\end{methods}
\sourcecode{string/lyndon.cpp}
\sourcecode{string/duval.cpp}
\begin{itemize}
- \item \textbf{De-Bruijn-Sequenze $\boldsymbol{B(\Sigma, n)}$:}~~~ein Wort das jedes Wort der Länge $n$ genau einmal als substring enthält (und minimal ist). Wobei $B(\Sigma, n)$ zyklisch betrachtet wird.
+ \item \textbf{\textsc{De-Bruijn}-Sequenz $\boldsymbol{B(\Sigma, n)}$:}~~~ein Wort das jedes Wort der Länge $n$ genau einmal als substring enthält (und minimal ist). Wobei $B(\Sigma, n)$ zyklisch betrachtet wird.
\item es gibt $\frac{(k!)^{k^{n-1}}}{k^{n}}$ verschiedene $B(\Sigma, n)$
\item $B(\Sigma, n)$ hat Länge $\abs{\Sigma}^n$
\end{itemize}
@@ -89,7 +88,7 @@
\begin{algorithm}{Suffix-Array}
\begin{methods}
- \method{SuffixArray}{berechnet ein Suffix Array}{\abs{s}\*\log^2(\abs{s})}
+ \method{SuffixArray}{berechnet ein Suffix Array}{\abs{s}\*\log(\abs{s})}
\method{lcp}{berechnet Länge des longest common prefix}{\log(\abs{s})}
\method{}{von \code{s[x]} und \code{s[y]}}{}
\end{methods}