====== Binäre Suche ====== Das Verfahren der binären Suche kommt immer dann zum Einsatz, wenn man in einer sortierten Datenmenge nach einem bestimmten Element sucht. ({{ :faecher:informatik:oberstufe:algorithmen:binaere_suche:aa_binaere_suche.pdf |AA}}) ===== Einführung ===== ==== Beispiele: ==== |{{:faecher:informatik:oberstufe:algorithmen:binaere_suche:phonebook.jpg?400|}}| Du suchst in einem **Telefonbuch**((Ein Telefonbuch ist ein altertümliches Nachschlagewerk, in dem - sortiert nach den Nachnamen - Namen und Telefonnummern von Personen einer Stadt eingetragen sind)) nach einem Freund. Sein Name beginnt mit U. Du könntest am Anfang des Telefonbuchs beginnen und einfach blättern, bis du zum Buchstaben U kommst - würdest du das so machen?| |((Photo by https://unsplash.com/@candidbcolette)) || |{{:faecher:informatik:oberstufe:algorithmen:binaere_suche:dictionary.jpg?400|}}| Du suchst einen Begriff, der mit dem Buchstaben K beginnt in einem **Wörterbuch** - wie könntest du vorgehen? | |((Photo by https://unsplash.com/@sandym10))|| |{{:faecher:informatik:oberstufe:algorithmen:binaere_suche:drawer.jpg?400|}}| Du suchst in einem der sortierten Karteikästen nach einer bestimmten Karteikarte, z.B. "Löwe"| |((Photo by https://unsplash.com/@jankolar))|| |{{:faecher:informatik:oberstufe:algorithmen:binaere_suche:twitter.jpg?400|}}|Du meldest dich bei Twitter an, dein Benutzername ist "gamer2008". Twitter muss nun prüfen, ob es in der (alphabetisch **sortierten**) **Datenbank** aller Konten, ein Konto mit diesem Namen gibt - wie könnte man das geschickt machen? | |((Photo by https://unsplash.com/@konkarampelas)) || |{{:faecher:informatik:oberstufe:algorithmen:binaere_suche:numbers.jpg?400|}} | **Zahlenraten**: Deine Freundin denkt sich eine zahl zwischen 1 und 100, du musst die Zahl mit möglichst wenigen Versuchen erraten. Die Freundin sagt dir jeweils, ob die geratene Zahl zu groß, zu klein oder richtig ist.| | ((Photo by https://unsplash.com/@drew_beamer))|| ===== Definition ===== Die **binäre Suche** ist ein Algorithmus, dessen **Eingabe** aus einer **sortierten Liste** von Elementen besteht. Wenn das gesuchte Element in dieser Liste enthalten ist, liefert die binäre Suche **die Position zurück**, an der es sich befindet. Andernfalls gibt die binäre Suche den Wert ''null'' zurück. {{ :faecher:informatik:oberstufe:algorithmen:binaere_suche:binary_search.png |}} ---- [[.:zahlenraten:start| >>>> Zahlenraten]]