Algorithme " La complexité "
Fermé
Jiko-java
Messages postés
186
Date d'inscription
dimanche 25 septembre 2016
Statut
Membre
Dernière intervention
22 juillet 2017
-
10 déc. 2016 à 04:39
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 14 déc. 2016 à 23:42
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 14 déc. 2016 à 23:42
Bonjour, Voilà en voulant résoudre quelque Algorithme j'me rends compte que par moment , je n'arrive pas a définir la complexité de mon Algorithme ( O(n)) , Par exemple à quelle moment peut t'-on déduire qu'un Algorithme quelconque requiert d'un for imbriqué , ou d'une seule boucle , y'a t-il des indicateur dans un Algorithme qui me permet de définir à l'avance la complexité de mon Algorithme ?
A voir également:
- Ce mot de passe ne répond pas aux critères de longueur, de complexité, de date ou d'historique de la stratégie de mot de passe de votre entreprise.
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur - Guide
- Voir mot de passe wifi android - Guide
- Mot de passe bios perdu - Guide
1 réponse
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
10 déc. 2016 à 07:39
10 déc. 2016 à 07:39
Bonjour,
La théorie de la complexité est une branche assez pointue de l'informatique. En général on ramène le problème cherché à un problème similaire dont on connaît déjà la complexité afin de déduire qu'ils ont la même complexité.
Dans tout les cas il faut décorreler le calcul de complexité de l'algorithme.
Ce n'est pas parce qu'un problème est en O(n) qu'il se code obligatoirement avec une boucle et en O(n²) avec deux boucles imbriquées.
Le calcul de la complexité n'aide généralement pas à déduire le code.
D'ailleurs certains problèmes existent dont on ne connaît pas de code capables d'atteindre la complexité théorique qu'ils pourraient avoir.
En revanche si tu as le code on peut en déduire la complexité, soit théoriquement par analyse, soit empiriquement en traçant un graphe.
La théorie de la complexité est une branche assez pointue de l'informatique. En général on ramène le problème cherché à un problème similaire dont on connaît déjà la complexité afin de déduire qu'ils ont la même complexité.
Dans tout les cas il faut décorreler le calcul de complexité de l'algorithme.
Ce n'est pas parce qu'un problème est en O(n) qu'il se code obligatoirement avec une boucle et en O(n²) avec deux boucles imbriquées.
Le calcul de la complexité n'aide généralement pas à déduire le code.
D'ailleurs certains problèmes existent dont on ne connaît pas de code capables d'atteindre la complexité théorique qu'ils pourraient avoir.
En revanche si tu as le code on peut en déduire la complexité, soit théoriquement par analyse, soit empiriquement en traçant un graphe.
10 déc. 2016 à 09:10
10 déc. 2016 à 09:56
Exemple :
La complexité s'exprimant sur f() est en O(n) car on appelle une seule fois chacun des String malgré les 3 boucles for qu'il est nécessaire de parcourir pour décomposer la structure objet initiale afin de traiter tous les String voulus.
10 déc. 2016 à 14:46
Dans ce cas puis-je en conclure que la complexité de cet Algorithme est exprimé en O(n^2) car j'Utilise plus d'une fois list2 ?
10 déc. 2016 à 17:01
Un exemple de O(n²) serait l'utilisation d'un f() à deux paramètres ayant chacun un élément de la liste.
Ici on peut voir ça comme un tableau, avec les éléments de la liste en colonne et les mêmes éléments de la même liste en ligne, donc les résultats f() sont inscrits sur chaque case de ce tableau, et sont donc beaucoup plus nombreux que lors de l'exemple précédent dont les appels à f() ne se faisaient que sur une dimension, en ligne.
11 déc. 2016 à 08:20