Divide and Conquer ist ein Algorithmus, der auf der rekursiven Zerlegung eines Problems in mehrere Unterprobleme ähnlicher Art basiert und diese Unterprobleme leicht gelöst werden können. 🔜 Das Problem besteht darin, in kleinere Teilprobleme zu unterteilen, die leicht gelöst werden können.
Der Master-Satz für „Teile und herrsche“ ist ein Analysesatz, der zur Bestimmung eines Big-0-Werts für rekursive Beziehungsalgorithmen verwendet werden kann Geben Sie die vom Algorithmus benötigte Zeit ein und stellen Sie sie in asymptotischer Notationsform dar. Beispiel für den Laufzeitwert des Problems im obigen Beispiel –function recursive(input x size n) if(n < k) Divide the input into m subproblems of size n/p. and call f recursively of each sub problem else Solve x and return
T(n) = f(n) + m.T(n/p)
n/b = Größe jedes Teilproblems b >= 0, p ist eine reelle Zahl.
Um diese Art von Problem zu lösen, verwenden wir die folgende Lösung:Wenn a > b
k, dann T(n) = ∅ (nlogba)
Wenn a = b
k, dann
Wenn p > -1, dann T(n) = ∅(nlogba log
p+1n)
Das obige ist der detaillierte Inhalt vonErweiterter Hauptsatz für die Divide-and-Conquer-Rekursion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!