J'ai travaillé sur un récent devoir d'informatique impliquant une récursion et la notation big-O. Je crois que je comprends assez bien (mais certainement pas parfaitement !) mais il y a une question en particulier qui me pose le plus de problèmes. Ce qui est étrange, c'est qu'en la regardant, elle semble être la plus simple du devoir.
Donnez le meilleur taux de croissance en utilisant la notation big-Oh pour la solution de la récurrence suivante ?
T(1) = 2
T(n) = 2T(n - 1) + 1 pour n>1
Et les choix sont :
- O(n log n)
- O(n^2)
- O(2^n)
- O(n^n)
Je comprends que le grand O fonctionne comme une limite supérieure, pour décrire le plus grand nombre de calculs, ou le temps d'exécution le plus élevé, qu'un programme ou un processus prendra. J'ai l'impression que cette récursion particulière devrait être O(n), puisque, au maximum, la récursion ne se produit qu'une fois pour chaque valeur de n. Puisque n n'est pas disponible, c'est soit mieux que cela, O(nlogn), soit pire, étant les trois autres options.
Donc, ma question est la suivante : pourquoi n'est-ce pas O(n) ?