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?

cs.stackexchange https://cs.stackexchange.com/questions/105579

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
scroll top