J'ai lu à propos de Big-O Notation de here et avait quelques questions sur le calcul de la complexité.Pour le code ci-dessous, j'ai calculé la complexité. besoin de vos entrées pour le même.Quelle est la complexité du code ci-dessous par rapport à la mémoire?
private void reverse(String strToRevers)
{
if(strToRevers.length() == 0)
{
return ;
}
else
{
reverse(strToRevers.substring(1));
System.out.print(strToRevers.charAt(0));
}
}
Si le facteur de mémoire est pris en compte alors la complexité du code ci-dessus pour une chaîne de n caractères est O (n^2). L'explication est pour une chaîne composée de n caractères, la fonction ci-dessous serait appelée récursivement n-1 fois et chaque appel de fonction crée une chaîne de caractère unique (stringToReverse.charAT (0)). C'est donc n * (n-1) * 2 qui se traduit par o (n^2). Faites-moi savoir si c'est juste?
@John: C'est vrai qu'il devrait être n * (n-1)/2 – Cshah