Vertiefung der Programmierung

Suchen
Motivation
Motivation
Wann muss
ich Daten
suchen?

Matrikelnummer x?
Bericht-2025.pdf?
Lineare Suche (Prinzip)

✅
Systematisches Suchen
funktioniert bei (fast) jeder
Datenstruktur
➔ Lineare Suche
| Best case | 1 |
| Average case | n |
| Worst case | n |
n Elemente →
⌨️ Lineare Suche (Beispiel)
Live
coding
Geht es noch schneller?
Bild ist gemeinfrei
Analogie: Wörterbuch
⚠️ Annahmen:
- Einträge sind vorsortiert
- wahlfreier Zugriff (auf Einträge)

Bild: Lizensiert durch Adobe Stock Archiv
Wie suche
ich ein Wort
?
Binäre Suche (am Beispiel)
live

Bild: Lizensiert durch Adobe Stock Archiv
Binäre Suche (Algorithmus)
| Best case | 1 |
| Average case | log(n) |
| Worst case | log(n) |
BinaereSuche(array, ziel):
links ← 0
rechts ← Länge(array) - 1
solange links ≤ rechts:
mitte ← (links + rechts) / 2
wenn array[mitte] = ziel:
gib mitte zurück
sonst wenn array[mitte] < ziel:
links ← mitte + 1
sonst:
rechts ← mitte - 1
gib -1 zurück- Teile Daten in linke/rechte Hälfte
- Gehe zu Mitte:
- Suchwert == Mitte ?
→ Gefunden - Suchwert > Mitte ?
→ Nach Rechts - Suchwert < Mitte ?
→ Nach Links
- Suchwert == Mitte ?
- Wiederhole bis: Größe Liste == 1
Zusammenfassung
-
Lineare Suche funktioniert in (fast) allen Datenstrukturen:
-
Wir durchlaufen jedes Element, bis entweder
-
das gesuchte Element gefunden wurde
-
das Ende der Datenstruktur (u.a. Liste) erreicht
-
-
-
Binäre Suche ist schneller bei vielen Elemente
-
Voraussetzungen:
-
Elemente sind vorsortiert
-
wahlfreier Zugriff auf Daten möglich
-
-

Suchen
By blackbill
Suchen
- 170