Meine Frage ist, ob es einige kluge Wege gibt, komplizierte rekursive Algorithmen zu debuggen. Angenommen, wir haben eine komplizierte (nicht ein einfacher Fall, wenn der Rekursionszähler in jeder 'verschachtelten Iteration' verringert wird).Debugging eines rekursiven Algorithmus
Ich meine so etwas wie rekursives Traversieren eines Graphen, wenn Schleifen möglich sind.
Ich muss überprüfen, ob ich irgendwo keine Endlosschleife bekomme. Und dies nur mit einem Debugger zu tun gibt keine sichere Antwort (weil ich nicht sicher bin, ob ein Algorithmus in einer Endlosschleife ist oder einfach so verarbeitet wird, wie er sollte).
Es ist schwer, es ohne konkretes Beispiel zu erklären. Aber was ich brauche, ist ...
'um zu überprüfen, ob die Endlosschleifen nicht in einem komplizierten rekursiven Algorithmus auftreten'.
Debuggen mit Druckanweisungen? – Minion91
Ich habe es versucht. Aber es verlangsamt die Ausführung (sehr), so weiß ich nach wenigen Minuten nicht, ob der Algorithmus noch verarbeitet wird (wie es sollte) oder einfach nur in der Endlosschleife ist. 'Der Platz für Objekte für rekursive Iteration ist' riesig 'und die Verringerung verschachtelter Logik ist nicht einfach (nicht jede Iteration hat sie um eins verringert). In einfachen Fällen funktioniert der Algorithmus gut. –
warum nicht den Algorithmus buchen? Pseudocode? etwas? Diese Frage ist sehr vage und eine richtige Antwort hängt von vielen Faktoren ab. –