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


    informatik-forum.net/attachment/23021/


    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!