Hallo zusammen.
kann jemand mir noch mal erklären wie man Laufzeit bestimmen kann ?
was sind die Regel,Tricks. zum Beispiel bei Schleifen dann müssen wir Summe benutzen.
und wie wann kann man Mastertheorem benutzen.
rechnen und fälle entscheidung kann ich schon. aber im praktisch wie?
zB
wo ist a,b,c und f(n) hier ?
Dank im Voraus
Ich kann versuchen das zu erklären. Sollte etwas nicht so ganz stimmen/ungenau/unverständlich sein - korrigiert mich, bitte.
Master Theorem benutzt man in den Fällen, wo man Rekursion hat bzw. das Algorithmus als Rekursion sich vorstellen kann.
Die Laufzeit wird damit sehr ungenau berechnet, aber für uns reicht das normalerweise.
Erstens in deinem Beispiel:
Ist die Laufzeit [tex]T(n)\approx2=O(1)[/tex]
Aber das hast du wahrscheinlich nicht gemeint.
Eher so was?
Eine gute Erklärung, wie man vorgehen sollte, kann man auf der englischen Wiki-Seite ([urln]http://en.wikipedia.org/wiki/Master_theorem[/urln]) lesen.
Hier für dein (modifiziertes) Beispiel:
Betrachte eine rekursive Version des Algos:
Dort liest man:

Also in unserem Fall [tex]n=1000-100=900[/tex]
Wir haben nur 1 rekursive Aufruf [tex]a=1[/tex]
[tex]\frac{n}{b}=\frac{n}{2}\Rightarrow b=2[/tex]
[tex]f(n)\approx2=O(1)[/tex]
Jetzt betrachte [tex]\log_{b}{a}=\log_{2}{1}=0[/tex] und [tex]f(n)=O(1)=O(n^{0})[/tex]
[tex]f(n)=O(n^{0})=\Theta(n^{\log_{b}{a}})[/tex] - 2. Fall
[tex]T(n)=\Theta{(n^{\log_{b}{a}}\cdot\log^{k+1}{n})}[/tex]
[tex]T(n)=\Theta({n^{0}}\log{n})=\Theta{(\log{n})}[/tex]
...der Sieg der Vernunft kann nur der Sieg der Vernünftigen sein