La mia domanda è se ci sono alcuni modi intelligenti per eseguire il debug di complicati algoritmi ricorsivi. Supponiamo che ne abbiamo uno complicato (non un caso semplice quando il contatore di ricorsione è diminuito in ogni 'iterazione annidata').Debug di un algoritmo ricorsivo
Intendo qualcosa di simile a un attraversamento ricorsivo di un grafico quando i loop sono possibili.
Ho bisogno di controllare se non sto ottenendo il ciclo infinito da qualche parte. E farlo usando solo un debugger non dà una risposta certa (perché non sono sicuro che un algoritmo sia in loop infinito o proceda come dovrebbe).
È difficile spiegarlo senza un esempio concreto. Ma quello di cui ho bisogno è ...
'per verificare se i loop infiniti non avvengono in un algoritmo ricorsivo, per esempio'.
Eseguire il debug utilizzando le istruzioni di stampa? – Minion91
Ho provato. Ma rallenta l'esecuzione (molto) quindi dopo pochi minuti non so se l'algoritmo è ancora in elaborazione (come dovrebbe) o semplicemente è già in loop infinito. 'Lo spazio degli oggetti' per l'iterazione ricorsiva è 'enorme' e la logica nidificata decrescente non è semplice (non ogni iterazione la diminuisce di uno). In casi semplici l'algoritmo funziona correttamente. –
perché non pubblicare l'algoritmo? psuedocodarlo? nulla? questa domanda è molto vaga e una risposta corretta dipende da molti fattori. –