Teile und Herrsche 1 SS10

Aus ProgrammingWiki
< AuK
Archivierte Version vom 2010-04-06T12:53:24+00:00. Aktuelle Version

Inhaltsverzeichnis

Autoren:

Was ist überhaupt Divide and Conquer?

DaC (eng. "Divide and Conquer") auf deutsch "Teile und Herrsche" genannt und in lat. "divide et impera". Es beschreibt folgendes Vorgehen bei Problemen:

  1. zerteilen des Problems in Teilprobleme (divide)
  2. lösen der einzelnen Teilprobleme, mittels rekursiven Aufruf (conquer)
  3. Teillösungen zusammenführen zu der Gesamtlösung (konkatenieren)
\begin{array}{ccl} T_B & = & 3T_A\left(\left\lceil \frac{n}{2}\right\rceil\right)+d\cdot n\\\\ & \leq & 3 \cdot c \cdot \left( \frac{n+1}{2}\right)^2+d\cdot n\\\\ & \leq & 3 \cdot c \cdot \left( \frac{n}{2} + \frac{1}{2} \right)^2+d \cdot n\\\\ & \leq & 3 \cdot c \cdot \left( \frac{n^2}{4}+2\frac{n}{4}+\frac{1}{4} \right)+d \cdot n\\\\ & \leq & \frac{3}{4}cn^2+\frac{3}{2}cn+\frac{3}{4}c+d \cdot n\\\\ & \leq & \frac{3}{4}cn^2+\left(\frac{3}{2}c+d\right)n+\frac{3}{4}c \end{array}

Das schnelle Sortieren

sqrt(5 + 5)

quicksort

Sortieren durch mischen

mergesort

Vergleich Quicksort und Mergesort

Übungen