Comment calculer la complexité temporelle [dupliquer]
Sep 22 2020
n'importe qui peut aider à expliquer pourquoi cette fonction
F (n) = F (n / 3) + 1 avec F (0) = 0
Peut avoir une complexité temporelle de O (Log n) avec log base 3.
Y a-t-il une notation mathématique ou quoi que ce soit qui puisse m'aider à m'expliquer comment obtenir le résultat. Merci
Réponses
2 OmG Sep 22 2020 at 10:07
Par substitution, cela peut être fait simplement:
F(n) = F(n/3) + 1 = F(n/3^2) + 1 + 1 = 1 + 1 + ... + 1 (log_3(n) times)
Comme chaque fois nest divisé par 3et 1est ajouté au résultat, si nous supposons n = 3^k, F(n) = k. Par conséquent, F(n) = O(log(n)). La constante (> 1) dans la base du logarithme n'a aucun impact sur l'ordre de complexité, c'est-à-dire log_a(n) = Theta(log_b(n))( a,b > 1).