He buscado alto y bajo y no puedo encontrar mucho material relacionado con complejidades de tiempo de ejecución, recursividad y java.Complejidades en tiempo de ejecución para algoritmos recursivos
Actualmente estoy aprendiendo las complejidades del tiempo de ejecución y la notación de Big-O en mi clase de Algoritmos, y tengo problemas para analizar los algoritmos recursivos.
private String toStringRec(DNode d)
{
if (d == trailer)
return "";
else
return d.getElement() + toStringRec(d.getNext());
}
Este es un método recursivo que simplemente iterará a través de una lista doblemente enlazada e imprimirá los elementos.
Lo único que se me ocurre es que tiene una complejidad en el tiempo de ejecución de O (n), ya que el número de llamadas a métodos recursivos dependerá de la cantidad de nodos en el DList, pero todavía no lo hago Me siento cómodo con esta respuesta.
No estoy seguro de si debería dar cuenta de la adición de d
y d.getNext()
.
¿O estoy completamente desviado y la complejidad del tiempo de ejecución es constante, ya que todo lo que hace es recuperar elementos del DNodes
en el DList
?
Ver: http://stackoverflow.com/questions/1126388/slow-scading-concatenation-overlarge-input – dyoo