Dans de tels cas, la complexité temporelle de la boucle est O(log(log(n))). Les cas suivants analysent différents aspects du problème. Cas 1 : CPP for (int i = 2; i <=n; i = pow(i k)) { // some O(1) expressions or statements } In this case i takes values 2 2k(2k)k= 2k2(2k2)k= 2k3... 2kenregistrerk(log(n)). Le dernier terme doit être inférieur ou égal à n et on a 2kenregistrerk(log(n))= 2journal(n)= n ce qui est tout à fait d’accord avec la valeur de notre dernier terme. Il y a donc dans le journal totalk(log(n)) de nombreuses itérations et chaque itération prend un temps constant pour s'exécuter, donc la complexité temporelle totale est O(log(log(n))). Cas 2 : CPP // func() is any constant root function for (int i = n; i > 1; i = func(i)) { // some O(1) expressions or statements } In this case i takes values n n1/k(n1/k)1/k= n1/k2n1/k3...n1/kenregistrerk(log(n))donc il y a dans le journal totalk(log(n)) itérations et chaque itération prend du temps O(1) donc la complexité temporelle totale est O(log(log(n))). Reportez-vous à l'article ci-dessous pour l'analyse des différents types de boucles. https://www.geeksforgeeks.org/dsa/how-to-analyse-loops-for-complexity-analysis-of-algorithms/ Créer un quiz