algorithm

Was ist ein Algorithm?

Stefan
6 Min Read
algorithm

Algorithm liefern Computern Anweisungen, die Daten in nutzbares Wissen umwandeln.

Ein Algorithm ist eine Reihe von Anweisungen, die von Softwareentwicklern und Datenwissenschaftlern implementiert werden , um Eingabedaten durch eine rechnerische Reihe von Arithmetik, Entscheidungsfindung und Wiederholung in Ausgabedaten umzuwandeln. Algorithm liefern Computern eine Reihe von Anweisungen , die Daten in nutzbares Wissen umwandeln. Jeder Algorithm versucht im Wesentlichen, eine Entscheidung zu treffen, oft als Teil einer Reihe von Entscheidungen, um sicherzustellen, dass eine rechnerische Eingabe verarbeitet und als nutzbare Daten übertragen wird, basierend auf der Aufgabe, die er zu erfüllen versucht.

Wie funktioniert ein Algorithm?

Ein Algorithm besteht aus einer Reihe von drei Schritten: der Eingabe, der Berechnung und der Ausgabe.

Eine Eingabe sind die Daten, die in einen Algorithm eingespeist werden, um den Berechnungsprozess zu starten.

Der Berechnungsprozess wendet dann Arithmetik, Entscheidungsfindung und Wiederholung an, um Gleichungen vom Typ „wenn x, dann y“ zu erstellen und sicherzustellen, dass nur die richtigen Daten an die Ausgabe weitergegeben werden. Viele Algorithm verwenden  maschinelles Lernen , um bei der computergestützten Entscheidungsfindung vergangenes Wissen zu nutzen .

Der Ausgabeprozess ist der Ausdruck der Schlussfolgerung des Algorithm. Dies kann in Form von Informationen geschehen, die einem Benutzer angezeigt werden, oder, was viel häufiger vorkommt, in Form von weiteren Daten, die als Eingabe für einen anderen Algorithm in einer Reihe von Prozessen dienen, die es einem Computer ermöglichen, komplexe Entscheidungen in Echtzeit zu treffen.

Was sind einige Beispiele für einen Algorithm?

Zu den drei häufig verwendeten Schlüssel Algorithm gehören die binäre Suche, das Mergesort und das Hinzufügen/Entfernen aus einer verknüpften Liste.

Binäre Suche

Binäre Such algorithm verwenden sortierte Datenarrays und geben den Index des gesuchten Werts zurück. Im Wesentlichen ermittelt dieser Algorithm ustyp, wo ein Wert innerhalb eines bestimmten Datensatzes vorhanden ist oder ob er überhaupt innerhalb des Datensatzes vorhanden ist. Dieser Algorithm führt bei seiner Suche fünf Schritte aus:

  1. Es findet den Mittelpunkt des sortierten Arrays.
  2. Es vergleicht den Mittelpunkt der Daten mit dem gesuchten Wert.
  3. Der Algorithm durchsucht dann die rechte Hälfte des Arrays, wenn der Mittelpunkt größer als der Wert ist.
  4. Wenn der Mittelpunkt kleiner als der Wert ist, wird die linke Hälfte des Arrays durchsucht.
  5. Schließlich werden die Schritte wiederholt, bis der Algorithm den Mittelpunktswert findet oder feststellt, dass dieser im Datensatz nicht vorhanden ist.

Zusammenführen, sortieren

Mergesort-Algorithmen funktionieren ähnlich wie binäre Suche nach dem Prinzip „Teile und herrsche“. Der Unterschied zwischen beiden besteht jedoch darin, dass beim Mergesort alle Elemente in einzelne Elemente aufgeteilt werden, bis jedes einzelne Element in einem eigenen Index vorhanden ist. Anschließend werden die Elemente zusammengeführt und basierend auf der Eingabe in einer verständlichen Reihenfolge sortiert.

Mergesort-Algorithmen verwalten sowohl den Teilungs- als auch den Zusammenführungsprozess gleichzeitig, um dem Benutzer schnellere Ergebnisse zu liefern.

Hinzufügen/Entfernen aus einer verknüpften Liste

Verknüpfte Listen verwenden Knoten und Zeiger anstelle von Arrays, wodurch einige Prozesse wesentlich effizienter ablaufen. Knoten enthalten ein Datenelement und einen Zeiger, der es zum nächsten Knoten weiterleitet, sodass die Daten konsistent in eine bestimmte Richtung fließen.

Verknüpfte Listen können neu strukturiert werden, sodass Knoten an einer bestimmten Stelle eingefügt oder gelöscht werden können. Ingenieure und Informatiker können genau feststellen, wo sich der Knoten befindet, der eingefügt oder entfernt werden muss, sowie die Zeiger, an denen die gewünschte Änderung neu angeordnet werden soll. So können Elemente aus der Mitte einer Sammlung entfernt werden , ohne dass der Rest der Datenstruktur im Speicher verschoben werden muss. Dies ermöglicht effizientere Einfügungen und Löschungen.

Was ist der beste Weg, einen Algorithmus zu analysieren?

Um sicherzustellen, dass ein Algorithmus so effizient wie möglich ist, gibt es verschiedene Analysemethoden, die die Ausführungsgeschwindigkeit und den Speicherverbrauch über mehrere Anwendungsfälle hinweg überprüfen.

Die Algorithmenanalyse beginnt mit dem Zählen der Anzahl der Operationen, die zum Ermitteln einer Antwort über verschiedene Eingabevariablen hinweg erforderlich sind. Ein linearer Suchalgorithmus, der beispielsweise nach Werten in einer Liste sucht, prüft jeden Wert in einer gegebenen Liste, um festzustellen, ob er dem Zielwert entspricht. Sobald der Wert gefunden wurde, kehrt er sofort zum Index zurück. Wenn kein Wert gefunden wird, gibt die Gleichung zurück -1. Die Anzahl der Prüfungen, die zum Finden des Zielwerts erforderlich sind, bestimmt die Ausführungsgeschwindigkeit des Algorithmus. Diese Ausführungsgeschwindigkeit variiert je nach Zielwert und den in der Liste vorhandenen Werten. Daher sollten mehrere Werte geprüft werden, um eine relative Durchschnittsgeschwindigkeit zu ermitteln fibonacci sequence.

Zur Bestimmung der tatsächlichen Ausführungsgeschwindigkeit eines Algorithmus sind weitere Variablen erforderlich, beispielsweise die Geschwindigkeit des Computers, die Programmiersprache und die Übersetzung dieser Sprache in Maschinencode. Um genau messen zu können, wie ein Algorithmus auf einem bestimmten Gerät läuft, muss er zum Laufen gebracht werden. Dies ist möglich, indem der Algorithmus in einer echten Programmiersprache und in JavaScript mithilfe der Funktion searchList implementiert wird. Diese Funktion gibt die Zeit in Millisekunden an, die ein Algorithmus benötigt, um eine bestimmte Anzahl von Zahlen in einer Liste zu suchen. Indem Programmierer und Datenwissenschaftler die Effizienz verschiedener Arten von Algorithmen für einen gegebenen Satz von Werten messen, können sie den besten Algorithmus für bestimmte Anwendungsfälle bestimmen.