Datenstrukturen und Algorithmen
Auf 1000 verschiedene, aufsteigend sortierte Werte wird eine binäre Suche angewendet. Ein Vergleich liefert jeweils „gleich“, „kleiner“ oder „größer“. Wie viele Vergleiche sind höchstens nötig, erfolgreiche und erfolglose Suchen zusammengenommen?
- A10
- B32
- C500
Antwort und Erläuterung anzeigen
Antwort: A. 10
Jeder Vergleich halbiert den Suchbereich ungefähr, und es gilt 2¹⁰ = 1024 ≥ 1000; nach höchstens 10 Vergleichen ist der Bereich also erschöpft (⌊log₂ 1000⌋ + 1 = 10). Die Komplexität ist O(log n), und selbst bei 1 Million Werten genügen höchstens 20 Vergleiche. 32 entspricht √1000 ≈ 31,6, und 500 liegt nahe am Mittelwert einer linearen Suche (etwa n/2). Zu beachten ist allerdings, dass die binäre Suche sortierte Daten braucht und das Sortieren selbst O(n log n) kostet.