Back to Top

PHNETZ - Internetagentur

Marketing für Ihren Erfolg

Algorithmen

1. Was ist ein Algorithmus?

Ein Algorithmus ist eine eindeutige, endlich ablaufende Vorschrift zur Lösung einer konkreten Problemstellung. Er besteht aus einer klaren Abfolge von definierten Schritten (Operationen), die bei gegebenen Eingabedaten ein korrektes Ergebnis (Ausgabe) erzeugen.

 

Charakteristika

  • Determinismus – bei gleichen Eingaben liefert der Algorithmus immer dieselbe Ausgabe.
  • Endlichkeit – die Ausführung endet nach endlich vielen Schritten.
  • Eindeutigkeit – jeder Schritt ist eindeutig beschrieben und für einen Computer oder Menschen ausführbar.
  • Effizienz – beurteilt nach Zeit‑ (Laufzeit) und Platz‑ (Speicher) Aufwand (Komplexität).
 

2. Klassifikation von Algorithmen

Kategorie
Beispiele
Typische Anwendungsgebiete
Sortieralgorithmen
Quicksort, Mergesort, Bubblesort
Datenorganisation, Datenbanken
Suchalgorithmen
Binäre Suche, Depth‑First Search (DFS), Breadth‑First Search (BFS)
Datenbank‑Abfragen, Pfadsuche in Graphen
Graph‑Algorithmen
Dijkstra, A*, Kruskal, Prim
Routing, Netzwerk‑Optimierung
Dynamische Programmierung
Knapsack, Floyd‑Warshall, Levenshtein‑Distanz
Optimierungsprobleme, Bioinformatik
Greedy‑Algorithmen
Huffman‑Kodierung, Activity‑Selection
Ressourcenallokation
Divide‑and‑Conquer
Quicksort, Karatsuba‑Multiplikation
Rekursive Probleme
Backtracking
Sudoku‑Löser, N‑Queens
Kombinatorische Suche
Randomisierte Algorithmen
Monte‑Carlo, Randomized Quickselect
Approximation, probabilistische Verfahren
Kryptografische Algorithmen
RSA, AES, SHA‑256
Sicherheit, Verschlüsselung
Maschinelles Lernen
Gradient Descent, Decision Trees, K‑Means
Mustererkennung, Vorhersagen

3. Analyse von Algorithmen

  1. Zeitkomplexität – meist in Big‑O‑Notation angegeben (z. B. O(n log n), O(n²)).
  2. Platzkomplexität – Speicherverbrauch in Abhängigkeit von n.
  3. Best‑Case / Average‑Case / Worst‑Case – unterschiedliche Laufzeitbetrachtungen.
  4. Amortisierte Analyse – mittlere Kosten über eine Folge von Operationen (z. B. Push/Pop bei dynamischen Arrays).