Algorithmen

Algorithmen sind exakte Vorschriften zur Lösung konkreter Probleme, die sehr detailliert jeden notwendigen Schritt beschreiben. In der Mathematik gibt es quasi seit jeher eine Reihe solcher vorgegebener Lösungswege. Auch in der Welt der Software Entwicklung spielen Algorithmen eine Rolle. Dieser Artikel zeigt, in welchen Bereichen Algorithmen eingesetzt werden und wozu sie gut sind. Zudem wird eine Liste mit Beispielen gezeigt.

Was ist ein Algorithmus

Ein Algorithmus ist die genaue Beschreibung eines konkreten Lösungsweges. Ein guter Vergleich: Die Route in einer Karte finden. Das ist ungenau, als gedankliches Modell aber passend. Stellen wie uns vor, der Algorithmus beschreibt einen Weg von Punkt A nach B. Bekanntlich gibt es meist viele Möglichkeiten. Ein Sprichwort besagt »Viele Wege führen nach Rom«. Und genau dies stimmt auch in der Mathematik bzw. Software Entwicklung. Wie bei einer Route auf einer Landkarte ist ein Weg meist deutlich kürzer als die anderen. Im Bezug auf Computerprogramme bedeutet dies, er ist effizienter, sicherer, schneller oder weniger speicherhungrig als andere Lösungen.

Für eine Strecke auf einer Landkarte ist es vergleichsweise leicht, den Weg zu notieren. Es entsteht eine Liste mit Straßennamen. Bei einem Computerprogramm muss der Algorithmus formal Schritt für Schritt beschrieben werden. Benötigt wird eine Notation, die der Software Entwicklung gerecht wird. Die genaue »Wegbeschreibung« nennt man Algorithmus.

Algorithmen für die Verschlüsselung

Jeder von uns nutzt täglich viele Algorithmen. Sie sind überall zu finden. Speziell die Verschlüsselung kommt mittlerweile in vielen Bereichen zum Einsatz. Selbst Menschen, die gar keinen eigenen Computer haben, profitieren von ihr. Beispielsweise schützt es die Transaktionen in der Bank, am Geldautomaten oder beim Bezahlen mit der EC-Karte.

Verschlüsselungsalgorithmen sind zum Beispiel der Advanced Encryption Standard (AES), Blowfish, DES bzw. 3DES oder Twofish. Wer einen WLAN-Accesspoint mit WEP betrieben hat, ist zudem mit dem Algorithmus RC4 in Kontakt gekommen.

Algorithmen für die Sortierung

Ein weiteres Einsatzgebiet sind die Sortierungsalgorithmen. Wer Programmieren lernt kommt damit früher oder später in Kontakt. Es gibt eine ganze Reihe unterschiedlicher Wege, auf die Datensätze sortiert werden können. Einsteigern in die Programmierung wird häufig das Bubblesort-Verfahren beigebracht. Der Algorithmus ist einfach zu verstehen, ist in der Praxis aber nur bedingt einsetzbar. Bei kleinen Datenmengen arbeitet er effizient, bei größeren Datenmengen dauert die Sortierung zu lange. Die Laufzeit steigt mit wachsender Anzahl der zu sortierenden Datensätze.

Suchalgorithmen

Ebenfalls wichtiger Einsatzbereich für Algorithmen sind Suchverfahren. Bei einer Software ist, insbesondere bei großen Datenmengen, jede Steigerung von Effizienz mehr als Willkommen. Da eine Suchanfrage häufig vom menschlichen Anwender ausgelöst wird, möchte man zeitnah Ergebnisse präsentieren. Um einen Vergleich der theoretischen Effizienz anstellen zu können, muss das Suchverfahren und alle notwendigen Schritte formal festgehalten werden. Mit anderen Worten, es wird ein Suchalgorithmus verwendet.

Der einfachste Suchalgorithmus ist die lineare oder auch sequentielle Suche. Wird aus einer Liste mit Einträgen ein ganz bestimmter Eintrag gesucht, geht die lineare Suche einfach jedes Element eines nach dem anderen durch. Im schlimmsten Fall müssen dafür alle Elemente der Liste verglichen werden.

Es gibt darüber hinaus noch eine ganze Reihe weiterer Algorithmen. Zum Beispiele für die Volltextsuche gibt es mehr als eine handvoll. Da dabei jedoch sowohl der zu durchsuchende Text als auch der Suchbegriff genau analysiert werden müssen, führt eine genauere Beschreibung hier zu weit.

Algorithmen im Spielzeug

Algorithmen sind wirklich allgegenwärtig. Selbst im Spielzeug sind Algorithmen zu finden. Fast jeder Mensch hat sich schon einmal die Zähne an einem Rubik’s Cube ausgebissen. Wer wild ausprobiert, kommt jedoch nicht weit. Die Antwort hier lautet: Algorithmen.

Es gibt spezielle Algorithmen, die für einzelne Aktionen verwendet werden. Will man einen Stein von einer Seite bspw. nach oben bringen, ohne die sonstige Ordnung durcheinanderzubringen, greift man auf Algorithmen zurück.

Fazit

Algorithmen gibt es überall. Sie sind allgegenwärtig. Speziell für Software Entwickler spielen sie eine große Rolle, die einen mehr, die anderen weniger. Nicht jeder implementiert Verschlüsselungen selbst. Dafür gibt es Bibliotheken. Auch eine Volltextsuche muss nicht mehr zwingend selbst implementiert werden. Häufig gibt es aber zum Beispielen Daten, die sortiert werden sollen. Sich bestehende Algorithmen anzuschauen und seiner favorisierten Programmiersprache zu implementieren ist allerdings für jeden Entwickler eine sinnvolle Übung.

Schreib einen Kommentar

Your email address will not be published.