2016-11-12 7 views
0

Sollten wir rekursive Aufrufliste als Hilfsraum von dem Programm verwendet betrachten? Ich denke, es sollte nur bei der Berechnung der Raumkomplexität berücksichtigt werden, nicht aber bei der Berechnung des Hilfsraums.Sollen wir rekursive Aufrufliste als Hilfsraum betrachten?


Hilfsabstand ist der zusätzliche Platz oder der temporäre Platz, der von einem Algorithmus verwendet wird. Raumkomplexität eines Algorithmus ist der Gesamtraum, den der Algorithmus in Bezug auf die Eingabegröße einnimmt.

+6

Definieren Sie "Hilfsraum" und warum ist es wichtig. –

+0

Hilfsabstand ist der zusätzliche Platz oder der temporäre Platz, der von einem Algorithmus verwendet wird. Raumkomplexität eines Algorithmus ist der Gesamtraum, den der Algorithmus in Bezug auf die Eingabegröße einnimmt. –

+0

Bitte aktualisieren Sie in Zukunft die Frage mit den zusätzlichen Informationen, anstatt einen Kommentar hinzuzufügen. Ich habe es diesmal für dich getan. –

Antwort

1

Wenn Sie sich tatsächlich auf Variablen in äußeren Aufrufen verlassen — Wenn Sie sie wieder benötigen, nachdem Ihr innerster Aufruf — zurückgibt, dann ja, sollten sie in den Hilfsraum aufgenommen werden.

Aber wenn alles, was Sie haben, sind tail calls, und der einzige Grund, warum Ihr Stapel wächst, ist, dass Ihr Compiler keine Tail-Call-Optimierung unterstützt, dann glaube ich nicht, dass ich das in den Hilfsraum der berücksichtigen würde) Algorithmus, obwohl Ihre tatsächliche Implementierung am Ende diesen Raum einnehmen wird.

Verwandte Themen