En mathématiques normales, cette boucle ne se terminera jamais. O (inf). En mathématiques discrètes, c'est O (n^3).
La boucle extérieure ...
for (i = n ; i > 0; i = i/3)
La boucle fonctionne alors i est supérieur à 0. Si i est positif, je réduire d'un tiers volonté jamais APPORTER i en dessous de 0 devenant très légèrement plus petit et plus petit .
Si i est un nombre à virgule flottante IEEE, il finira par atteindre 0 après un grand nombre d'itérations en fonction de la taille de vos flotteurs. Si les nombres sont supposés être des entiers (ce que je pense que vous demandez avec la variable discrete-mathematics), la boucle externe est O (log (n)) car je suis coupé d'un tiers à chaque itération et atteindra rapidement 0.
La boucle interne, isolée, est assez facile à voir comme O (n^3).
for (my $j = 0; $j < $n**3 ; $j++) {
$sum++;
}
Une boucle O (n^3) boucle à l'intérieur d'un O (log (n)) est O (n^3 log (n)) qui ne soit pas une courbe de croissance significativement différent de O (n^3).
La boucle externe est O (log n). Est-ce suffisant pour travailler? – Beta
Je veux dire que l'interne est n^3 ce qui ferait O (nlog (n))? – user3769402
Je pense que vous seriez mieux servi sur https://cs.stackexchange.com/ – Schwern