\documentclass{bschlangaul-aufgabe}

\begin{document}
\bAufgabenMetadaten{
  Titel = {„Streuspeicherung“},
  Thematik = {Hashing mit Modulo 11},
  Referenz = 46115-2013-F.T2-A4,
  RelativerPfad = Examen/46115/2013/03/Thema-2/Aufgabe-4.tex,
  ZitatSchluessel = examen:46115:2013:03,
  ZitatBeschreibung = {Thema 2 Aufgabe 4 Seite 5 „Streuspeicherung“},
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Streutabellen (Hashing)},
  EinzelpruefungsNr = 46115,
  Jahr = 2013,
  Monat = 03,
  ThemaNr = 2,
  AufgabeNr = 4,
}

\section{„Streuspeicherung“
\index{Streutabellen (Hashing)}
\footcite[Thema 2 Aufgabe 4 Seite 5 „Streuspeicherung“]{examen:46115:2013:03}}

Die Werte $7$, $0$, $9$, $11$, $18$, $4$, $5$, $3$, $13$, $24$, $2$
sollen in eine Hashtabelle der Größe $11$ (Fächer $0$ bis $10$)
eingetragen werden. Die zur Hashfunktion $h(x) = (7 \cdot x) \% 11$
gehörenden Schlüssel sind in der folgenden Tabelle bereits
ausgerechnet:\footcite[Seite 2, Aufgabe 4]{aud:pu:5}

\begin{center}
\begin{tabular}{|l|c|c|c|c|c|c|c|c|c|c|c|c|}
\hline
$x$    & 7 & 0 & 9 & 11 & 18 & 4 & 5 & 3  & 13 & 24 & 2\\\hline
$h(x)$ & 5 & 0 & 8 & 0  & 5  & 6 & 2 & 10 & 3  & 3  & 3\\\hline
\end{tabular}
\end{center}

\begin{enumerate}

%%
% a)
%%

\item Fügen Sie die oben genannten Schlüssel in der vorgegebenen
Reihenfolge in einen Streuspeicher ein, welcher zur Kollisionsauflösung
verkettete Listen verwendet, und stellen Sie die endgültige
Streutabelle dar.

\begin{bAntwort}
\begin{center}
\begin{tabular}{l|ccccccccccc}
Index     & 0  & 1 & 2 & 3  & 4 & 5  & 6 & 7 & 8 & 9 & 10\\\hline
Schlüssel & 0  &   & 5 & 13 &   & 7  & 4 &   & 8 &   & 3 \\
          & 11 &   &   & 24 &   & 18 &   &   &   &   &  \\
          &    &   &   & 2  &   &    &   &   &   &   &  \\
\end{tabular}
\end{center}
\end{bAntwort}

%%
% b)
%%

\item Fügen Sie die gleichen Schlüssel mit linearem Sondieren bei
Schrittweite $+1$ zur Kollisionsauflösung in eine neue Hash-Tabelle ein.
Geben Sie für jeden Schlüssel an, auf welche Felder beim Einfügen
zugegriffen wird und ob Kollisionen auftreten. Geben Sie die gefüllte
Streutabelle an.

\begin{bAntwort}
\begin{center}
\begin{tabular}{l|ccccccccccc}
Index     & 0  & 1      & 2 & 3  & 4       & 5  & 6      & 7      & 8 & 9      & 10\\\hline
Schlüssel & 0  & $11_1$ & 5 & 13 & $24_1$  & 7  & $18_1$ & $4_1$  & 9 & $2_6$  & 3 \\
\end{tabular}
\end{center}
\end{bAntwort}

%%
% c)
%%

\item Wie hoch ist der „Load“-Faktor (die Belegung) der Hashtabelle aus
a) bzw. b) in Prozent? Können Sie weitere Schlüssel einfügen?

\begin{bAntwort}
\bPseudoUeberschrift{Teilaufgabe a)}

$\frac{11}{11} = 100\%$: Es können allerdings weitere Elemente eingefügt
werden. Die Verkettung lässt einen Loadfaktor über 100\% zu. Der
Suchaufwand wird dann jedoch größer.

\bPseudoUeberschrift{Teilaufgabe b)}

$\frac{11}{11} = 100\%$: Es können keine weiteren Elemente eingefügt
werden, da alle Buckets belegt sind.
\end{bAntwort}

%%
% d)
%%

\item Würden Sie sich bei dieser Zahlensequenz für das Hashing-Verfahren
nach a) oder nach b) entscheiden? Begründen Sie kurz Ihre Entscheidung.

\begin{bAntwort}
Das Verfahren a) scheint hier sinnvoller, da noch nicht zu viele
Suchoperationen notwendig sind (max. 2), während bei Verfahren b) einmal
bereits 6-mal sondiert werden muss.
\end{bAntwort}

\end{enumerate}
\end{document}
