Datenstrukturen und Algorithmen

Eine lineare Suche vergleicht die Elemente eines Arrays mit 100 verschiedenen Werten der Reihe nach von vorn, um einen Zielwert zu finden. Der Zielwert ist immer im Array enthalten und steht mit gleicher Wahrscheinlichkeit an jeder Position. Wie viele Vergleiche sind im Mittel nötig?

  1. AEtwa 7
  2. B50,5
  3. C100
Antwort und Erläuterung anzeigen

Antwort: B. 50,5

Steht der Zielwert an Position k, sind k Vergleiche nötig; im Mittel also (1 + 2 + … + 100) / 100 = 50,5, allgemein (n + 1)/2. Im besten Fall (Zielwert ganz vorn) genügt 1 Vergleich, im schlechtesten Fall (Zielwert am Ende) sind es 100. Sowohl der mittlere als auch der schlechteste Fall sind proportional zu n, die Komplexität ist also O(n). Etwa 7 entspricht log₂ 100 ≈ 6,6, der Schrittzahl einer binären Suche, die sich nur auf sortierte Daten anwenden lässt.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Datenstrukturen und Algorithmen

  1. Welche Aussage beschreibt eine verkettete Liste (eine Liste, in der jedes Element einen Zeiger auf das nächste Element enthält) im Vergleich zu einem Array richtig?
  2. Auf einem leeren Stack werden nacheinander die Operationen push 1, push 2, pop, push 3, push 4, pop, pop ausgeführt. In welcher Reihenfolge werden die Werte durch pop entnommen?
  3. In eine leere Warteschlange (Queue) werden die Elemente A, B und C in dieser Reihenfolge eingefügt. Dann wird ein Element entnommen, D eingefügt und ein Element entnommen, E eingefügt und ein Element entnommen. In welcher Reihenfolge werden die Elemente entnommen?
  4. Der Ausdruck „3 4 + 2 * 5 −“ in umgekehrter polnischer Notation (Postfixnotation) wird ausgewertet, indem jede Zahl auf einen Stack gelegt wird und bei jedem Operator zwei Werte entnommen, verrechnet und das Ergebnis wieder abgelegt wird. Welches Ergebnis entsteht? Der linke Operand eines Operators ist der Wert, der früher abgelegt wurde.
  5. Welche Aussage beschreibt eine Kollision in einer Hashtabelle richtig?