Du hast mal wieder Dein Ladekabel verlegt oder findest die zweite Socke nicht? Wie schön wäre es in solchen Fällen nicht selbst das komplette Zimmer durchforsten zu müssen, sondern sich einfach anzeigen lassen zu können, wo sich der gesuchte Gegenstand befindet.
Das ist im realen Leben natürlich nicht so einfach möglich – anders sieht es jedoch aus, wenn Du z. B. Dateien auf Deinem Computer oder Laptop suchst. In solchen Fällen können Suchalgorithmen Deine Rettung sein. Wie die funktionieren und was es für Unterschiede gibt, erfährst Du in dieser Erklärung.
Teste dein Wissen mit Multiple-Choice-Karteikarten
1/3
1/3
1/3
Punktzahl
Das war ein fantastischer Start!
Das kannst du besser
Melde dich an, um deine eigenen Karteikarten zu erstellen
Die wichtigste Frage zuerst: Was ist überhaupt ein Suchalgorithmus?
Ein Suchalgorithmus ist ein Verfahren, bei dem Schritt für Schritt Daten innerhalb einer Datensammlung ausfindig gemacht werden.
Suchalgorithmen gehören zu den grundlegenden Methoden in der Informatik – genau wie die Sortieralgorithmen. Bei beiden ist die Laufzeit – also die Schnelligkeit des Algorithmus – ein wichtiger Faktor. Neben der Effizienz unterscheiden sich Suchalgorithmen auch anhand ihres Aufbaus, also der Art und Weise, wie sie implementiert werden können.
Was sich mit Sortieralgorithmen alles sortieren lässt sowie mehr zu den einzelnen Verfahren und Vorgehensweisen findest Du in der gleichnamigen Erklärung auf StudySmarter.
Suchalgorithmen Anwendung
Doch wofür werden Suchalgorithmen genau angewendet? Wie es der Name bereits verrät, werden mithilfe von Suchalgorithmen Daten, Listen oder Baumstrukturen durchsucht. Wann welcher Algorithmus verwendet wird, kannst Du den folgenden Abschnitten entnehmen.
Suchalgorithmen Arten
Es existiert eine Reihe verschiedener Arten von Suchalgorithmen:
Einfache Suchalgorithmen
Heuristische Suchalgorithmen
Weitere Suchverfahren
In den nachfolgenden Abschnitten werden die drei Kategorien genauer beschrieben.
Einfache Suchalgorithmen
Der Hintergrund von einfachen Suchalgorithmen ist, dass sie meist abstrakter implementiert werden können. Außerdem können sie für eine Vielzahl von Problemen eingesetzt werden. Ein Nachteil ist jedoch, dass diese Algorithmen bei der Suche kein gutes Kosten-Nutzen-Verhältnis haben und meistens eine relativ lange Laufzeit besitzen.
Zu den einfachen Suchalgorithmen gehören das Suchen in Listen oder auch die Suche in Bäumen.
Finde relevante Lernmaterialien und bereite dich auf den Prüfungstag vor
Im Gegensatz zu den einfachen Suchalgorithmen besitzen heuristische Verfahren genauere Informationen über die zu durchsuchende Datenmenge wie z. B. über die Verteilung der Daten. Bei den heuristischen Suchalgorithmen kann zusätzlich zwischeninformierten unduninformierten Suchalgorithmen unterschieden werden.
Informierte Suchalgorithmen
Die informierte Suche besucht zunächst "vielversprechende" Knoten in einem Baum. Dafür werden entsprechende Zusatzinformationen benötigt, damit der Algorithmus weiß, welche Knoten zuerst durchlaufen werden sollten.
Informierte Suchverfahren gehören zu den sogenannten"heuristischen Suchalgorithmen". Verwendet werden diese Algorithmen vor allem dann, wenn die Komplexität und die Rechenleistung eines Algorithmus verringert werden soll.
Unter einerHeuristik versteht man ein Vorgehen, mit der Lösungsstrategien für ein Problem schneller gefunden werden können.
Uninformierte Suchalgorithmen
Bei der uniformierten Suche werden Knoten in einem Baum einfach der Reihe nach durchlaufen.
Uniformierte Suchverfahren werden umgangssprachlich auch als "blinde Suche" bezeichnet.
Weitere Suchverfahren
Neben den beiden bereits genannten Kategorien gibt es noch weitere Suchverfahren, dazu gehören z. B.:
Optimierende Suche
Suchverfahren für Zeichenketten
Optimierende Suche
Bei deroptimierenden Suchewerden Werte bestimmten vorher definierten Variablen zugeordnet. Dazu gehört z. B. das Backtracking.
Suchverfahren für Zeichenketten
Ein Suchverfahren für eine Zeichenkette sucht innerhalb einer solchen nach einem bestimmten Schlüssel. Diese Art von Verfahren zählen zu den sogenannten "String-Matching-Algorithmen", dazu zählen z. B.:
Knuth-Morris-Pratt Algorithmus
Boyer-Moore Algorithmus
Karp-Rabin Algorithmus
Suchalgorithmen Beispiele
Weitere Beispiele für Suchalgorithmen findest Du in den nachfolgenden Abschnitten.
Zu den einfachen Suchalgorithmen gehört dielineare oder auchsequentielle Suche. Sie wird in der Regel bei ungeordneten Arrays verwendet und eignet sich vor allem bei eher kleineren Datenmengen.
Ein einfaches Beispiel für eine lineare Suche: Durchsuche eine Datenmenge nach dem kleinsten oder größten Element. Dabei musst Du die Daten durchgehen und alle Elemente miteinander vergleichen. Dadurch steigt die benötigte Anzahl an Vergleichen ebenfalls linear an – was die lineare Suche meist nicht besonders schnell macht.
Binäre Suche
Eine effektivere Variante ist die binäre Suche. Die Voraussetzung bei einer binären Suche ist allerdings, dass die Datenmenge vorher sortiert wurde. Bei der binären Suche wird nach dem "Teile-und-Herrsche-Prinzip" vorgegangen.
Die Vorgehensweise bei der binären Suche ist folgende:
Mittleres Element suchen und mit gesuchtem Element vergleichen
Ist es kleiner, suche in der rechten Hälfte weiter
Ist es größer, suche in der linken Hälfte
"Neue" Datenmenge erneut halbieren und das gesuchte Element mit dem mittleren Element vergleichen
Das ganze so lange weiter durchführen, bis das gesuchte Element gefunden wurde
Interpolationssuche
DieInterpolationssucheist eine Modifizierung der binären Suche. Der Unterschied liegt darin, dass dieInterpolationssucheDaten nicht in der Mitte unterteilt, sondern die Größe der Teilmengen dynamisch gewählt werden können.
Das hat den Vorteil, dass Du die Trennung anhand des gesuchten Wertes wählen kannst. Suchst Du z. B. einen niedrigen Wert, kannst Du die Datenmenge in einem entsprechend niedrigen Bereich trennen und musst im Zweifelsfalls weniger Daten nach Deinem gesuchten Wert durchsuchen.
Schließe dich mit deinen Freunden zusammen, und habt Spaß beim Lernen
Eine weitere Möglichkeit um zu Suchen sind binäre und nicht binäre Suchbäume. Dabei ist das Prinzip ein ähnliches: Bei Suchen in Bäumen werden die einzelnen Knoten nacheinander durchgegangen. Die Vorgehensweise ist folgende:
Entnehme einen Knoten aus einem Suchbaum
Untersuche seine Kindknoten
In welcher Reihenfolge Du einen Baum durchsuchst, hängt vor verwendeten Verfahren ab. Dabei kannst Du z. B. die Breitensuche und die Tiefensucheunterscheiden. Auch Suchbäume enthalten bereits sortierte Datensätze, die je nach Art des Baumes aufsteigend oder absteigend sortiert sein können.
Sowohl die Breitensuche(breadth-first search) als auch die Tiefensuche(depth-first search) sind Methoden, um Knoten in einem Graphen zu finden. Bei der Breitensuche werden zunächst alle Nachbarn bearbeitet, die am nächsten zum aktuellen Knoten sind. Die Tiefensuche geht stattdessen zuerst alle Kindknoten eines Knotens durch. Beide Verfahren gehören zu den uninformierten Suchalgorithmen.
Mehr Informationen erhältst Du in den Erklärungen zu "Suchbäume" und dem "Binärbaum" auf StudySmarter.
Suche in Graphen
Auch Suchen in Graphen können durch verschiedene Suchalgorithmen gelöst werden. Algorithmen, die Du dafür verwenden kannst, sind:
Außerdem gibt es noch die Möglichkeit, mittels Hashverfahren zu suchen. Die Idee dahinter ist mithilfe eines Schlüssels, einer Hashfunktion und einer dazugehörigen Hashadresse eine sogenannte Hashtabelle zu erzeugen. Die Hashadresse gibt dabei genau an, an welcher Stelle, bzw. in welchem Feld sich der Datensatz befindet. In einer solchen Hashtabelle ist es nun möglich, Datensätze zu suchen.
Mehr zu diesen Prinzipien kannst Du in den Erklärungen zum Datenmapping und zum Hashing auf StudySmarter nachlesen.
Suchalgorithmen Übersicht
Nachfolgend findest Du eine Übersicht verschiedener Suchverfahren und ihrer wichtigsten Vor- und Nachteile:
Suchalgorithmen
Vorteile
Nachteile
Lineare Suche
Einfach zu implementieren.
Dauert bei großen Datenmengen sehr lange.
Kann auch in nicht sortierten Datenmengen verwendet werden.
Sortierte Daten bleiben sortiert, auch wenn ein neues Element eingefügt wird.
Ein genauer Vergleich muss dabei immer spezifisch für das jeweilige Suchverfahren betrachtet werden. Mehr Informationen zu den einzelnen Kriterien findest Du in der Erklärung zu den Sortieralgorithmen auf StudySmarter.
Suchalgorithmen Laufzeit
Die Laufzeit von Suchalgorithmen wird in den Best-Case, Average-Case und den Worst-Case unterschieden. Angegeben wird die Laufzeit mithilfe der sogenannten O-Notation.
Die O-Notation ist eine Methode in der Informatik, um den Aufwand von Algorithmen bzw. die Komplexität von Funktionen in Abhängigkeit ihrer Eingabegröße einzuordnen. Sie macht dadurch die Effizienz von Algorithmen vergleichbar.
Weitere Informationen zur O-Notation findest Du in der gleichnamigen Erklärung auf StudySmarter.
In der folgenden Übersicht sind die Laufzeiten von verschiedenen Suchalgorithmen auf einem Blick zusammengefasst. Steht nichts explizit dabei, ist der Average-Case angegeben.
Suchalgorithmus
Laufzeit
Lineare Suche
O(n)
Binäre Suche
O(log n)
Interpolationssuche
Best-Case: O(log(log(n)))Worst-Case: O(n)
Breitensuche
Bei Verwendung einer Adjazenzliste: O(|V| + |E|)Bei Verwendung einer Adjazenzmatrix: O(|V2|) oder O(n2)
Bei Verwendung in Arrays: O(n2 + m)Bei Verwendung in einer PriorityQueue: O(n · log n + m · n)
Boyer-Moore Algorithmus
O(n/m)
Knuth-Morris-Pratt Algorithmus
O(n + m)
Suchalgorithmen – Das Wichtigste
Suchalgorithmen Informatik: EinSuchalgorithmus ist ein Verfahren, bei dem Schritt-für-Schritt Daten innerhalb einer Datensammlung ausfindig gemacht werden.
Suchalgorithmen Anwendung: Suchalgorithmen können verwendet werden, um Daten, Listen oder Baumstrukturen zu durchsuchen.
Die Suchalgorithmen können in verschiedene Arten unterschieden werden:
Einfache Suchalgorithmen
Heuristische Suchalgorithmen
Weitere Suchalgorithmen
Beispiele für Suchalgorithmen sind: lineare Suche, binäre Suche, Interpolationssuche, Suche in Bäumen, Suchen in Graphen, Hash-Suche etc.
Suchalgorithmen Vergleich: Verglichen werden können Suchalgorithmen durch Kriterien wie die Laufzeit, den Speicherbedarf oder die Stabilität.
Lerne schneller mit den 5 Karteikarten zu Suchalgorithmen
Melde dich kostenlos an, um Zugriff auf all unsere Karteikarten zu erhalten.
Häufig gestellte Fragen zum Thema Suchalgorithmen
Was ist ein Suchalgorithmus?
Ein Suchalgorithmus ist ein Verfahren, bei dem Schritt-für-Schritt Daten innerhalb einer Datensammlung ausfindig gemacht werden.
Welche Suchalgorithmen gibt es?
Suchalgorithmen können in einfache und heuristische Verfahren unterschieden werden. Heuristische Algorithmen berücksichtigen dabei genauere Informationen über die zu durchsuchende Datenmenge, wie die Datenverteilung.
Wie funktionieren Suchalgorithmen?
Suchalgorithmen sind dafür da, um aus einer Datenmenge bestimmte Daten zu ermitteln. Wie genau ein Suchalgorithmus funktioniert, hängt dabei vom Verfahren ab.
Wie stellen wir sicher, dass unser Content korrekt und vertrauenswürdig ist?
Bei StudySmarter haben wir eine Lernplattform geschaffen, die Millionen von Studierende unterstützt. Lerne die Menschen kennen, die hart daran arbeiten, Fakten basierten Content zu liefern und sicherzustellen, dass er überprüft wird.
Content-Erstellungsprozess:
Lily Hulatt
Digital Content Specialist
Lily Hulatt ist Digital Content Specialist mit über drei Jahren Erfahrung in Content-Strategie und Curriculum-Design. Sie hat 2022 ihren Doktortitel in Englischer Literatur an der Durham University erhalten, dort auch im Fachbereich Englische Studien unterrichtet und an verschiedenen Veröffentlichungen mitgewirkt. Lily ist Expertin für Englische Literatur, Englische Sprache, Geschichte und Philosophie.
Gabriel Freitas ist AI Engineer mit solider Erfahrung in Softwareentwicklung, maschinellen Lernalgorithmen und generativer KI, einschließlich Anwendungen großer Sprachmodelle (LLMs). Er hat Elektrotechnik an der Universität von São Paulo studiert und macht aktuell seinen MSc in Computertechnik an der Universität von Campinas mit Schwerpunkt auf maschinellem Lernen. Gabriel hat einen starken Hintergrund in Software-Engineering und hat an Projekten zu Computer Vision, Embedded AI und LLM-Anwendungen gearbeitet.
StudySmarter ist ein weltweit anerkanntes Bildungstechnologie-Unternehmen, das eine ganzheitliche Lernplattform für Schüler und Studenten aller Altersstufen und Bildungsniveaus bietet. Unsere Plattform unterstützt das Lernen in einer breiten Palette von Fächern, einschließlich MINT, Sozialwissenschaften und Sprachen, und hilft den Schülern auch, weltweit verschiedene Tests und Prüfungen wie GCSE, A Level, SAT, ACT, Abitur und mehr erfolgreich zu meistern. Wir bieten eine umfangreiche Bibliothek von Lernmaterialien, einschließlich interaktiver Karteikarten, umfassender Lehrbuchlösungen und detaillierter Erklärungen. Die fortschrittliche Technologie und Werkzeuge, die wir zur Verfügung stellen, helfen Schülern, ihre eigenen Lernmaterialien zu erstellen. Die Inhalte von StudySmarter sind nicht nur von Experten geprüft, sondern werden auch regelmäßig aktualisiert, um Genauigkeit und Relevanz zu gewährleisten.