logo

Wichtigste Art von Algorithmen

Was ist ein Algorithmus?

Ein Algorithmus ist ein schrittweises Vorgehen zur Lösung eines Problems. Ein guter Algorithmus sollte zeitlich und räumlich optimiert sein. Unterschiedliche Arten von Problemen erfordern unterschiedliche Arten algorithmischer Techniken, um optimal gelöst zu werden. Es gibt viele Arten von Algorithmen, aber die wichtigsten und grundlegendsten Algorithmen, die Sie benötigen, werden in diesem Artikel besprochen.

1. Brute-Force-Algorithmus :

Dies ist die grundlegendste und einfachste Art von Algorithmus. Ein Brute-Force-Algorithmus ist die direkte Herangehensweise an ein Problem, d. h. die erste Herangehensweise, die uns in den Sinn kommt, wenn wir das Problem sehen. Technisch gesehen ist es so, als würde man alle verfügbaren Möglichkeiten zur Lösung dieses Problems iterieren.



Beispiel:

Wenn eine Sperre mit 4-stelliger PIN vorhanden ist. Die zu wählenden Ziffern reichen von 0 bis 9, dann probiert die Brute Force nacheinander alle möglichen Kombinationen aus, wie 0001, 0002, 0003, 0004 usw., bis wir die richtige PIN erhalten. Im schlimmsten Fall sind 10.000 Versuche erforderlich, um die richtige Kombination zu finden.

Beispiel für einen Java-Teilstring

2. Rekursiver Algorithmus :

Diese Art von Algorithmus basiert auf Rekursion . Bei der Rekursion wird ein Problem dadurch gelöst, dass man es in gleichartige Teilprobleme zerlegt und sich immer wieder selbst aufruft, bis das Problem mithilfe einer Grundbedingung gelöst ist.
Einige häufige Probleme, die mithilfe rekursiver Algorithmen gelöst werden können, sind: Fakultät einer Zahl , Fibonacci-Reihe , Turm von Hanoi , DFS für Graph , usw.



A) Divide-and-Conquer-Algorithmus :

Bei Divide-and-Conquer-Algorithmen besteht die Idee darin, das Problem in zwei Abschnitten zu lösen. Der erste Abschnitt unterteilt das Problem in Teilprobleme desselben Typs. Der zweite Abschnitt besteht darin, das kleinere Problem unabhängig zu lösen und dann das kombinierte Ergebnis zu addieren, um die endgültige Antwort auf das Problem zu erhalten.
Einige häufige Probleme, die mithilfe von Divide-and-Conquers-Algorithmen gelöst werden können, sind: Binäre Suche , Zusammenführen, sortieren , Schnelle Sorte, Strassen’s Matrix Multiplication , usw.

B) Dynamische Programmieralgorithmen :

Diese Art von Algorithmus wird auch als bekannt Memoisierungstechnik Denn hier geht es darum, das zuvor berechnete Ergebnis zu speichern, um es nicht immer wieder neu berechnen zu müssen. Teilen Sie in der dynamischen Programmierung das komplexe Problem in kleinere auf überlappende Teilprobleme und speichern Sie das Ergebnis für die zukünftige Verwendung.
Die folgenden Probleme können mit dem Dynamic Programming-Algorithmus gelöst werden Rucksackproblem , Gewichtete Jobplanung , Floyd Warshall-Algorithmus , usw.

C) Gieriger Algorithmus :

Beim Greedy-Algorithmus wird die Lösung Teil für Teil aufgebaut. Die Entscheidung für den nächsten Teil wird auf der Grundlage getroffen, dass er einen unmittelbaren Nutzen bringt. Es berücksichtigt niemals die Entscheidungen, die zuvor getroffen wurden.
Einige häufige Probleme, die durch den Greedy-Algorithmus gelöst werden können, sind: Dijkstra-Algorithmus für den kürzesten Weg , Prims Algorithmus , Kruskals Algorithmus , Huffman-Codierung , usw.



gegnerische Suche

D) Backtracking-Algorithmus :

Beim Backtracking-Algorithmus wird das Problem inkrementell gelöst, d. h. es handelt sich um eine algorithmische Technik zur rekursiven Lösung von Problemen, indem versucht wird, eine Lösung Stück für Stück inkrementell aufzubauen und dabei diejenigen Lösungen zu entfernen, die die Einschränkungen des Problems überhaupt nicht erfüllen Zeitpunkt.
Einige häufige Probleme, die durch den Backtracking-Algorithmus gelöst werden können, sind: Hamilton-Zyklus , M-Färbungsproblem , N-Queen-Problem , Ratten-im-Labyrinth-Problem , usw.

3. Randomisierter Algorithmus :

Im randomisierten Algorithmus verwenden wir eine Zufallszahl. Sie hilft bei der Entscheidung über das erwartete Ergebnis. Die Entscheidung, die Zufallszahl so zu wählen, dass sie den unmittelbaren Nutzen bringt
Einige häufige Probleme, die durch den Randomized-Algorithmus gelöst werden können, sind Quicksort: Bei Quicksort verwenden wir die Zufallszahl zur Auswahl des Pivots.

4. Sortieralgorithmus :

Der Sortieralgorithmus wird verwendet, um Daten möglicherweise in aufsteigender oder absteigender Reihenfolge zu sortieren. Es wird auch zum effizienten und nützlichen Anordnen von Daten verwendet.
Einige häufige Probleme, die durch den Sortieralgorithmus gelöst werden können, sind Blasensortierung, Einfügungssortierung, Zusammenführungssortierung, Auswahlsortierung und Schnellsortierung. Beispiele für den Sortieralgorithmus sind.

Gimp-Export als JPG

5. Suchalgorithmus :

Der Suchalgorithmus ist der Algorithmus, der zum Suchen des spezifischen Schlüssels in bestimmten sortierten oder unsortierten Daten verwendet wird. Einige häufige Probleme, die durch den Suchalgorithmus gelöst werden können, sind: Binäre Suche oder lineare Suche sind ein Beispiel für einen Suchalgorithmus.

6. Hashing-Algorithmus :

Hashing-Algorithmen funktionieren genauso wie der Suchalgorithmus, enthalten jedoch einen Index mit einer Schlüssel-ID, also einem Schlüssel-Wert-Paar. Beim Hashing weisen wir bestimmten Daten einen Schlüssel zu.
Einige häufige Probleme können durch den Hashing-Algorithmus bei der Passwortüberprüfung gelöst werden.