Zurück zur Übersicht

Begriff

Divide and Conquer (Teile und Herrsche)

Computer Science Algorithms S3
2 Quellen 0 Lernpfade 0 Backlinks enriched

Warum wichtig?

Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.

Das Prinzip kennen schon die Römer (Julius Cäsar). Wenn du einen riesigen Feind (Problem) hast, greife ihn nicht frontal an. Teile ihn in kleine Gruppen. Besiege jede kleine Gruppe einzeln (Herrsche). Füge die Siege zusammen. In der Informatik heißt das: Zerlege ein riesiges Problem (Sortiere 1 Million Zahlen) in zwei halb so große Probleme. Und die wieder in zwei... Bis das Problem winzig ist (Sortiere 1 Zahl -> Fertig).

Merksatz: Ein Algorithmus-Design-Paradigma, bei dem ein Problem rekursiv in kleinere Teilprobleme zerlegt, gelöst und dann wieder zusammengesetzt wird.


Quick-Check

  1. Unterschied zu Dynamic Programming?
    Bei D&C sind die Teilprobleme unabhängig (disjunkt). Bei DP überlappen sie sich. Wenn du merkst, dass du das gleiche Teilproblem zweimal löst, brauchst du DP, nicht D&C.
  2. Was ist der Basisfall?
    Der Boden. Wenn das Problem so klein ist, dass man es nicht mehr teilen kann (1 Element). Ohne Basisfall stürzt das Programm ab (Stack Overflow).
  3. Warum "Herrsche"?
    Lateinisch "Divide et Impera". Es bedeutet: Wenn du deine Feinde spaltest, kannst du sie beherrschen. Genauso beherrschst du die Komplexität des Algorithmus.