Laufzeitanalyse von rekursiven Codes

  • hallo, habe folgenden code und muss seine Laufzeit berechnen:

    a) Geben Sie für das folgende Programm die Laufzeitkomplexität als Rekursionsgleichung in Abhängigkeit des Eingabeparameters n an :

    int berechne1(int n)
    {
    int sum = 0;

    for(int i = 0; i < n/2 ; i++)
    {
    sum += 2*i-1;

    }
    if (n<=0)
    return sum;
    else
    sum+4*berechne1(n-1)5;

    }


    ich hab die Musterlösung davon und die lautet: T(n) = T(n-1) + c1* n/2 + c2

    Allerdings würde ich gerne wissen, wie man auf diese Gleichung denn kommt. kann mir das jmd. erklären?

  • Die Theorie dahinter ist das Master-Theorem - aber dazu gibt es sicher in Vorlesungsfolien/Skriptum/OdervonwoauchimmerdumitdemProblemkonfrontiertwarst mehr (eventuell hilft ja auch googlen). :verycool:

    Einmal editiert, zuletzt von CwieZebra (6. Mai 2012 um 20:39)

  • Hallo,

    [CODE]Die Theorie dahinter ist das Master-Theorem - ...

    ich habe mir die drei Fälle angeschaut, aber ich weiß nicht, wann welcher Fall anzuwenden ist :confused:

    Kann mir bitte jemand sagen, wie ich den richtigen Fall bestimmen kann?

    Im Anhang habe ich ein Beispiel, was ich nicht richtig lösen kann.

    Danke vorab
    Viele Grüße
    Asg


    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.


    PS: Wie kann ich hier im Forum Sonderzeichen wie die Oh-Notationen schreiben? Oder ist es nicht möglich?

  • ich glaub, ich muss alle drei Fälle testen, um herauszufinden, welcher Fall zutrifft, oder???


    Ich habe noch etwas weiter recherchiert und habe folgende Beispiele gefunden:
    Master Theorem - Computer Science & Engineering

    Die Bedingungsprüfung in diesem Skript finde ich einfacher. Wobei ist mir nicht ganz klar, was man als d nehmen soll, wenn eine Funktion f(n) mehrere Exponenten hat z. B. f(n) = n2 + n log n. Wahrscheinlich muss der größte Exponent für d gewählt werden, in diesem Fall d = 2, oder??

    Hier wird aber auf der Seite 4 geschrieben, dass Master-Theorem auf nicht polynomiale f(n) wie 2n nicht anwendbar ist ....

    Master Theorem: Practice Problems and Solutions
    ... aber hier wird das Master-Theorem auf eine solche f(n) im Beispiel 3 angewendet.

    Wo ist denn mein Denkfehler?


    Viele Grüße
    Asg

    Einmal editiert, zuletzt von Asg (3. August 2013 um 15:59)

  • PS: Wie kann ich hier im Forum Sonderzeichen wie die Oh-Notationen schreiben? Oder ist es nicht möglich?

    Du kannst Unicode-Zeichen verwenden, z.B. f ∈ ϴ(g).

    Oder du verwendest das [noparse] [tex='[/noparse]-Tag; aus</p><p><br></p><p>[noparse]<woltlab-metacode-marker data-name="tex" data-uuid="5868d3b7-c2b8-47a5-8212-614b4dad9e51" data-source="W3RleF0=" data-attributes="WyJmXFxpblxcVGhldGFcXGxlZnQoZ1xccmlnaHQpIl0=" data-use-text="0" /><woltlab-metacode-marker data-uuid="5868d3b7-c2b8-47a5-8212-614b4dad9e51" data-source="Wy90ZXhd" />[/noparse]</p><p><br></p><p>wird dann</p><p><br></p><p>[tex]f\in\Theta\left(g\right)'][/tex]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!