Ho cercato in alto e in basso e non riesco a trovare molto materiale relativo a complessità di run-time, ricorsione e java.Complessità di run-time per algoritmi ricorsivi
Attualmente sto imparando le complessità di run-time e la notazione Big-O nella mia classe Algorithms e sto riscontrando problemi nell'analisi degli algoritmi ricorsivi.
private String toStringRec(DNode d)
{
if (d == trailer)
return "";
else
return d.getElement() + toStringRec(d.getNext());
}
Questo è un metodo ricorsivo che semplicemente eseguirà l'iterazione attraverso una lista doppiamente collegata e stamperà gli elementi.
L'unica cosa che posso venire con è che ha una complessità di run-time di O (n), dal momento che il numero di chiamate metodo ricorsivo dipenderà dal numero di nodi nel dlist, ma ho ancora don' t sentirsi a proprio agio con questa risposta.
Non sono sicuro di dover calcolare l'aggiunta di d
e d.getNext()
.
Oppure sono completamente fuori strada e la complessità del tempo di esecuzione è costante, poiché tutto ciò che sta facendo è recuperare elementi dallo DNodes
nello DList
?
Vedere: http://stackoverflow.com/questions/1126388/slow-string-concatenation-over-large-input – dyoo