Suchalgorithmen

Seien es Nutzerdaten in Internetportalen, Datenbanken zu Normteilen oder Messdaten. Die heutzutage anfallenden Datenmengen sind für einzelne Personen nicht mehr überschaubar und unausgewertet auch nicht von Wert. Um an die in einer Datenbank liegenden Informationen zu gelangen, verwendet man Suchalgorithmen.

Die Effizienz eines Algorithmus drückt sich dadurch aus, wie schnell er ein Element finden kann. Dabei ist zu beachten, wie die zu durchsuchenden Daten vorliegen.

Ein großes Textdokument soll nach einer bestimmten Zeichenkette durchsucht werden. Zum Auffinden der Zeichenkette wird der Text von Anfang bis Ende durchlaufen und dem Nutzer jede Übereinstimmung zwischen Textpassage und Zeichenkette angezeigt. Die Liste muss dabei komplett durchlaufen werden. Hierbei kann die im Praxisteil vorgestellte lineare Listensuche verwendet werden. 

Der Suchalgorithmus hat vor Durchsuchen des Textes keine Kenntnis über das vorliegende Problem und muss daher langsam das gesamte Dokument durchlaufen.

Stellen Sie sich nun folgende Situation vor: In einer Datenbank liegen Daten zu Normschrauben vor. Die Schrauben sind in der Datenbank der Größe nach sortiert. Der Algorithmus kann durch Kenntnis dieses Umstands effizienter arbeiten. Anstatt die Liste von Anfang bis Ende zu durchlaufen, beginnt der Algorithmus in der Mitte der Liste und schaut, ob das gesuchte Element links oder rechts der Mitte liegt. Dieses Vorgehen wird für jedes Teilfeld wiederholt, bis das Element gefunden ist. Das Vorgehen wird als binäre Suche bezeichnet.

Der Suchalgorithmus kann durch die Beschaffenheit des Problems effizienter arbeiten. Der gleiche Algorithmus wäre auf ein unsortiertes Problem nicht anwendbar, schlägt aber den erst genannten in diesem speziellen Fall.

 

Ein Algorithmus, der auf viele Probleme anwendbar ist, ist häufig nicht der effizienteste für ein spezielles Problem. Hier empfiehlt es sich, den Algorithmus den speziellen Begebenheiten anzupassen.