Feinanalyse

xregNes

Newbie
Registriert
Sep. 2019
Beiträge
6
Kennt sich hier jemand mit einer Feinanalyse aus?

Angenommen ich hätte folgenden Algorithmus:
Code:
begin
    ...
    s := 0;
    for i := a to b do
        s := s + 1;
    ...
end

Würde für diesen Algorithmus die Feinanalyse folgendermaßen aussehen?
Wenn:
Wertzuweisung = 1
Vergleich = 1
Addition = 0.5

Ich würde auf folgendes Ergebnis kommen (?) f(a,b) = 4,0*(b-a) + 5,5
Wäre nett wenn mir jemand sagen kann ob das so stimmen kann. :)

Codeb - a1Begründung
s := 0-1,0Zuweisung und nur einmal ausgeführt.
for i := a to b do2,532,5 da die Schleife b-a mal eine Wertzuweisung, einen Vergleich und eine Addition ausführt.
3 da bei betreten der Schleife ein Vergleich und eine Zuweisung stattfindet und beim letzten Überprüfen nur mehr ein Vergleich getätigt wird.
s := s+11,51,5Schleife wird insgesamt b-a+1 mal ausgeführt und eine Addition + Zuweisung stattfindet.
SUMME4,05,5
 
Wieso hat s:=s+1 bei dir Einmalkosten? Und die Einmalkosten für die Schleifenprüfung sind bei dir merkwürdig angegeben. Überlege dir, unter welchen Bedingungen die Einmalkosten zustande kommen. Tipp: In welcher Reihenfolge werden die Operationen ausgeführt?
 
SoDaTierchen schrieb:
Wieso hat s:=s+1 bei dir Einmalkosten? Und die Einmalkosten für die Schleifenprüfung sind bei dir merkwürdig angegeben. Überlege dir, unter welchen Bedingungen die Einmalkosten zustande kommen. Tipp: In welcher Reihenfolge werden die Operationen ausgeführt?

Naja, meine Überlegung war da bei beispielweise b = 8 und a = 5, die for-Schleife ja 4 mal ausgeführt wird. Somit wird s:=s+1, b-a mal ausgeführt + 1.
Bei der Schleifenprüfung findet beim ersten Mal nur eine Zuweisung und ein Vergleich statt, erst beim 2ten mal kommt eine Addition dazu.
 
Wenn die Schleifenprüfung sich ab dem zweiten Mal anders verhält, dann ist dort aber noch eine zweiter Vergleich enthalten, nämlich ob es noch der erste Schleifendurchlauf ist oder nicht.

Tipp: es ist kein zweiter Vergleich nötig. Formuliere Mal die Schleife aus, Sprungmarkierungen und Sprünge Kosten ja nichts :) das bringt eventuell Licht ins Dunkel
 
Zurück
Oben