J'essaie de comprendre la complexité d'une boucle for utilisant la notation Big O. Je l'ai déjà fait dans mes autres cours, mais celui-ci est plus rigoureux que les autres parce qu'il est sur l'algorithme actuel. Le code est le suivant:complexité pour les boucles imbriquées
for(i=n ; i>1 ; i/=2) //for any size n
{
for(j = 1; j < i; j++)
{
x+=a
}
}
et
for(i=1 ; i<=n;i++,x=1) //for any size n
{
for(j = 1; j <= i; j++)
{
for(k = 1; k <= j; x+=a,k*=a)
{
}
}
}
je suis arrivé que la première boucle est de O (n) la complexité, car il va dans la liste n fois. Quant à la deuxième boucle je suis un peu perdu! Merci pour votre aide dans l'analyse. Chaque boucle est dans son propre espace, ils ne sont pas ensemble.
Votre commentaire est dans le dernier paragraphe décrivant vos réflexions sur le premier problème ou la deuxième? – hatchet
dernier paragraphe décrivant le premier problème –
Il n'y a pas de liste dans votre code, donc je suppose qu'en "parcourant la liste" vous voulez simplement dire que "x + = a' est exécuté" n' fois, non? Si oui, comment êtes-vous arrivé à cette conclusion? – sepp2k