Heim  >  Artikel  >  Backend-Entwicklung  >  Erweiterter Hauptsatz für die Divide-and-Conquer-Rekursion

Erweiterter Hauptsatz für die Divide-and-Conquer-Rekursion

王林
王林nach vorne
2023-08-31 21:09:17916Durchsuche

Erweiterter Hauptsatz für die Divide-and-Conquer-Rekursion

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

Für die meisten rekursiven Algorithmen können Sie die Zeitkomplexität für den Algorithmus ermitteln unter Verwendung des Master-Theorems, aber es gibt einige Fälle, in denen der Master-Theorem nicht anwendbar ist, wenn das Problem T(n) nicht monoton ist, zum Beispiel T(n) = sin n. Die Problemfunktion f(n) ist kein Polynom. Da der Hauptsatz zur Ermittlung der Zeitkomplexität in diesen Fällen nicht effizient ist, wurde ein erweiterter Hauptsatz für die rekursive Wiederholung entwickelt Form −

T(n) = f(n) + m.T(n/p)
wobei n die Größe des Problems ist.

a = Anzahl der Teilprobleme in der Rekursion, a > 0

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+1

n)

    Wenn p = -1, dann T(n) = ∅(nlog
  • ba loglogn)
  • Wenn p ba
    • Wenn a k, dann
    • Wenn p > klog
    • p
    • n)Wenn p
  • Mit dem erweiterten Master-Algorithmus berechnen wir die Komplexität einiger Algorithmen −
    • Binäre Suche − t(n) = θ(logn)Sortierung zusammenführen
    • − T(n) = θ(nlogn)

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen