Comment trouver le Big O Temps Si la fonction de récursivité a des cas différents de récursivité avec une fraction différente de n?
-
05-11-2019 - |
Question
Comment trouver le Big O Temps Si la fonction de récursivité a des cas différents de récursivité avec une fraction différente de n?
Si j'ai une fonction récursive comme celle-ci par exemple (ce n'est qu'un exemple, ce n'est pas une chose réelle, cela démontre juste ma question):
someFunction(n){
base case:
return 0
if (some case)
return someFunction(3n/4)
else if (some other cases)
return someFunction(n/4)
}
Comme nous pouvons le voir, la récursivité s'appelle dans différents cas et dans différents cas, le n est fractionné par une valeur différente, comment puis-je noter la formule récursive pour découvrir le temps d'exécution?
La formule est-elle quelque chose comme:
T(n) = T(3n/4)?
T(n) = T(n/4)?
T(n) = T(3n/4) + T(n/4)?
T(n) = (Probability of first case)*T(3n/4) + (Probability of first case)*T(n/4)?
Et si je n'ai aucune idée de ma probabilité pour chaque cas?
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à cs.stackexchange