Complexité

Fermé
dx3d Messages postés 68 Date d'inscription dimanche 6 septembre 2009 Statut Membre Dernière intervention 19 juillet 2017 - 20 juin 2014 à 19:19
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 20 juin 2014 à 19:22
Bonjour, je rencontre depuis toujours un problème pour le calcul de la complexité, surement du fait que je n'ai pas porté assez attention durant le cours et depuis je n'y ai pas trop pensé, j'aimerais maintenant combler mes lacunes.

Donc si je comprend bien jusque là quand on demande d'écrire une fonction qui s'exécute en temps O(1) aucune boucle ne doit être utilisé et toutes les instructions doivent être basiques.

En O(n) une seule boucle est autorisé. Et O(n^k) autorise k nombre de boucles.

Cependant il m'arrive de trouvé des complexités tels que O(log(n)) et d'autres du genre, dans quelle cas à t'on ce genre de complexité ?

Merci de m'éclairer ! :)

PS : Si j'ai tout faux il suffit de me le dire, j'irais revoir le cours en sa totalité.


A voir également:

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
20 juin 2014 à 19:22
Bonjour,

Un exemple de O(log n) c'est le parcours par dichotomie.

Tu pars du milieu, si c'est moins, tu vas à gauche, si c'est plus tu vas à droite.
Ta recherche se divise par 2 à chaque fois, si bien que si n=2^k au départ, à l'étape suivant tu n'auras plus que 2^(k-1)... jusqu'à avoir k=0, soit k étapes.

Or si n=2^k alors k=log2(n), CQFD.
0