¿Cuál es la complejidad de este simple fragmento de código?
Estoy pegando este texto de un libro electrónico que tengo. Dice la complejidad si O (n2) y también da una explicación, pero no veo cómo.
Pregunta: ¿Cuál es el tiempo de ejecución de este código?
public String makeSentence(String[] words) {
StringBuffer sentence = new StringBuffer();
for (String w : words) sentence.append(w);
return sentence.toString();
}
La respuesta que dio el libro:
E2), donde n es el número de letras en la oración. He aquí por qué: cada vez que agrega una cadena a la oración, crea una copia de la oración y ejecuta todas las letras de la oración para copiarlas. Si tiene que iterar hasta n caracteres cada vez en el bucle, y está bucle al menos n veces, eso le da un O (n2) tiempo de ejecución. ¡Ay
¿Alguien puede explicar esta respuesta más claramente?