Impressum
< Arrays 5 - Selectionsort Inhalt

Arrays in Python - Binäre Suche

Druchsucht man ein Array Element für Element braucht man n Vergleiche, bei einer Arraylänge von n.
Dies kann sehr aufwendig sein, wenn die Arrays sehr lang sind. Z.B. bei der Suche einer Person in Deutschland wären über 80 Millionen Vergleiche nötig, beim Suchen einer Bestellung eines Händlers mehrere Milliarden (große Onlinehändler verschicken über 4 Mrd. Pakete pro Jahr) oder bei Aktienhandel.
Sind die Daten sortiert, geht es schneller mit der binären Suche.
Bei 4,000,000,000 Datensätzen braucht man hier nur 32 Vergleiche.

Vorgehen

Bei der Binären Suche nimmt man das mittlere Element des Arrays und vergleicht es mit dem gesuchten Wert. Dies wiederholt man bis die obere und untere Grenze gleich sind (oder die obere Grenze kleiner als die untere Grenze ist).
Da das mittlere Element bereits verglichen wurde, kann der Bereich sogar noch eins kleiner gemacht werden.

Binäre Suche in Python

In Python sieht das so aus:
def binSuche(feld, gesucht):
    untereGrenze = 0
    obereGrenze = len(feld)-1
    
    while untereGrenze <= obereGrenze:
        mitte = (obereGrenze+untereGrenze)//2
        if feld[mitte] == gesucht:
            return True
        elif feld[mitte]<gesucht:
            untereGrenze = mitte+1
        else:
            obereGrenze = mitte-1
    return False

binäre Suche als Struktogramm

Binäre Suche Struktogramm

binäre Suche als Struktogramm für BW Abi ab 2024

Binäre Suche Struktogramm