Kann mir bitte jemand damit helfen?
Verwenden Sie die Iterationsmethode, um es zu lösen. T(n) = T(n-1) +n
Eine Erklärung der Schritte wäre sehr willkommen.
Kann mir bitte jemand damit helfen?
Verwenden Sie die Iterationsmethode, um es zu lösen. T(n) = T(n-1) +n
Eine Erklärung der Schritte wäre sehr willkommen.
T(n) = T(n-1) + n
T(n-1) = T(n-2) + n-1
T(n-2) = T(n-3) + n-2
und so weiter können Sie den Wert von T(n-1) und T(n-2) in T(n) einsetzen, um eine allgemeine Vorstellung vom Muster zu bekommen.
T(n) = T(n-2) + n-1 + n
T(n) = T(n-3) + n-2 + n-1 + n
.
.
.
T(n) = T(n-k) + kn - k(k-1)/2 ...(1)
Für den Basisschritt:
n - k = 1, also können wir T(1) erhalten
\=> k = n - 1
ersetzen in (1)
T(n) = T(1) + (n-1)n - (n-1)(n-2)/2
Was Sie erkennen können, ist von der Ordnung n2 => O(n2).
Another solution:
T(n) = T(n-1) + n
= T(n-2) + n-1 + n
= T(n-3) + n-2 + n-1 + n
// wir können nun verallgemeinern auf k
= T(n-k) + n-k+1 + n-k+2 + ... + n-1 + n
// da n-k = 1 ist, also T(1) = 1
= 1 + 2 + ... + n //Hier
= n(n-1)/2
= n^2/2 - n/2
// wir nehmen den dominanten Term, der n^2*1/2 ist, deshalb 1/2 = big O
= big O(n^2)
Einfache Methode:
T (n) = T (n - 1) + (n )-----------(1)
//jetzt T(n-1)=t(n)
T(n-1)=T((n-1)-1)+((n-1))
T(n-1)=T(n-2)+n-1---------------(2)
jetzt setze (2) in (1) ein, du erhältst
d.h. T(n)=[T(n-2)+n-1]+(n)
T(n)=T(n-2)+2n-1 //vereinfacht--------------(3)
jetzt, T(n-2)=t(n)
T(n-2)=T((n-2)-2)+[2(n-2)-1]
T(n-2)=T(n-4)+2n-5---------------(4)
jetzt setze (4) in (2) ein, du erhältst
d.h. T(n)=[T(n-4)+2n-5]+(2n-1)
T(n)=T(n-4)+4n-6 //vereinfacht
............
T(n)=T(n-k)+kn-6
**Basierend auf der allgemeinen Form T(n)=T(n-k)+k, **
jetzt, nehmen wir an n-k=1 wir wissen T(1)=1
k=n-1
T(n)=T(n-(n-1))+(n-1)n-6
T(n)=T(1)+n^2-n-10
Gemäß der Komplexität ist 6 konstant
Also, Letztendlich O(n^2)
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.