6.8.11 Lösungen |
|
Aufgabe 1
Download: |
Um die Effizienz des einfachen Euklidchen Algorithmus mit seiner erweiterten Varianten zu vergleichen machen wir am besten ein Zahlenbeispiel. Zuerst der einfache Algorithmus:
|
Aufgabe 2 | Der
Algorithmus arbeitet in den ersten beiden Fällen korrekt. Beim dritten
Beispiel erhalten wir eine Fehlermeldung beim Ausführen des Programms: |
Ausgabe:
Erste Zahl: 32768 Tatsächlich ist die Rekursionstiefe zu groß. Beim Stack handelt es sich um einen Speicherbereich, auf dem die offenen, also noch nicht beendeten Methoden abgelegt werden. Wie wir wissen, wird bei einem rekursiven Abstieg die Methode immer wieder neu aufgerufen und damit, wie wir gerade gelernt haben, auf den Stack gelegt. Beim rekursiven Aufstieg werden sie alle wieder nach und nach vom Stack geholt. Nun kann es passieren, dass beim rekursiven Abstieg der Stack überläuft bevor der Basisfall erreicht ist. Genau das ist bei unserem Beispiel der Fall. Wir sehen, Rekursionen können oft leichter lesbar und effizienter sein, dafür aber den Speicher des Rechners überfordern. |
|
zu | |
zur Startseite | www.pohlig.de (C) MPohlig 2005 |