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

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

王林
Freigeben: 2023-08-31 21:09:17
nach vorne
977 Leute haben es durchsucht

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
Nach dem Login kopieren

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)
Nach dem Login kopieren
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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage