Complexité Algorithmique
Fermé
bidjoss
Messages postés
24
Date d'inscription
mercredi 12 août 2009
Statut
Membre
Dernière intervention
4 février 2014
-
29 sept. 2009 à 16:57
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 29 sept. 2009 à 17:32
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 29 sept. 2009 à 17:32
A voir également:
- Complexité Algorithmique
- Videosurveillance algorithmique - Accueil - Protection
- Algorithme " La complexité " - Forum Java
- Complexité Fibonacci ✓ - Forum Programmation
- Besoin d'aide sur la complexité - Forum Algorithmes / Méthodes
- Complexite et np completude - Forum Programmation
9 réponses
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
29 sept. 2009 à 16:59
29 sept. 2009 à 16:59
2 boucles imbriquées, ca peut être exponientiel ! mais des fois, on a pas le choix ...
bidjoss
Messages postés
24
Date d'inscription
mercredi 12 août 2009
Statut
Membre
Dernière intervention
4 février 2014
29 sept. 2009 à 17:02
29 sept. 2009 à 17:02
Merci de la réponse
Et pour 6 alors?!!!
Comment on détermine si c'est exponentielle?
Et pour 6 alors?!!!
Comment on détermine si c'est exponentielle?
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
29 sept. 2009 à 17:05
29 sept. 2009 à 17:05
ca dépend de la manière dont varie tes boucles for
bidjoss
Messages postés
24
Date d'inscription
mercredi 12 août 2009
Statut
Membre
Dernière intervention
4 février 2014
29 sept. 2009 à 17:07
29 sept. 2009 à 17:07
Tu veux garder tes secrets?!!
Voila mes boucles (c'est du MATLAB)
for i=(1:size(R,1))
for j1=(1:size(Efin,1))
for j2=(1:size(Efin,2))
if Efin(j1,j2)==R(i,1)
for k=(j2:size(Efin,2))
if Efin(j1,k)==R(i,2)
nbpaires=nbpaires+1;
lEfin(nbpaires,1)=R(i,1);
lEfin(nbpaires,2)=R(i,2);
end
end
end
end
end
end
Voila mes boucles (c'est du MATLAB)
for i=(1:size(R,1))
for j1=(1:size(Efin,1))
for j2=(1:size(Efin,2))
if Efin(j1,j2)==R(i,1)
for k=(j2:size(Efin,2))
if Efin(j1,k)==R(i,2)
nbpaires=nbpaires+1;
lEfin(nbpaires,1)=R(i,1);
lEfin(nbpaires,2)=R(i,2);
end
end
end
end
end
end
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
29 sept. 2009 à 17:11
29 sept. 2009 à 17:11
--ce que je veux dire, c'est que si t'as 2 for, l'un qui fait un balayage sur une taille fixe (for i = 1 à 3), et l'autre de taille variable, alors c'est linéaire
si t'as 2 balayages sur une taille variable (comme ca semble être ton cas) alors c'est une complexité exponentielle
si t'as 2 balayages sur une taille variable (comme ca semble être ton cas) alors c'est une complexité exponentielle
bidjoss
Messages postés
24
Date d'inscription
mercredi 12 août 2009
Statut
Membre
Dernière intervention
4 février 2014
29 sept. 2009 à 17:15
29 sept. 2009 à 17:15
Merci
Je crois avoir compris ton message, j'ai donc l'impression d'être en mode exponentielle à cause de cette ligne
for k=(j2:size(Efin,2))
Je vais voir ce que je peux faire.
Quant au reste, si ce for était en mode de 1 à n, je serais en O(n)?
NablaNablaNabla l'hypnotiseur?!!
Je crois avoir compris ton message, j'ai donc l'impression d'être en mode exponentielle à cause de cette ligne
for k=(j2:size(Efin,2))
Je vais voir ce que je peux faire.
Quant au reste, si ce for était en mode de 1 à n, je serais en O(n)?
NablaNablaNabla l'hypnotiseur?!!
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
29 sept. 2009 à 17:25
29 sept. 2009 à 17:25
NablaNablaNabla l'hypnotiseur?!!==>pas pigé ....
vois si tu as un moyen de remplacer, mais bien souvent tu n'as pas le choix, surtout avec un faible nombre d'instructions comme tu as là.
des fois, déporter une partie des opérations en dehors de la boucle permet de gagner du temps
exemple (désolé, je parles pas matlab, je parle C/C++)
dans cet exemple, il va par exemple créer 5 fois la variable j, puis lui mettre son contenu
alors que faire ce qui suit marche tout aussi bien:
et la on ne crée qu'une fois la variable....
donc dans cet exemple, tu as une partie temps constant d'execution y=1 qui a remplacé un truc y=x ... je suis aps bon avec les maths mois, ca me croque le cerveau ;)
et si tu avais de boucles for, ca aurai pu donné un truc y=x²...
donc bon, voila, c'est juste pour te dire déviter , si possible, de metrte certaines opérations dans du code: sur un petit exemple ca change pas grand chose, mais sur des gros volumes, tu perds vite du temps inutilement
vois si tu as un moyen de remplacer, mais bien souvent tu n'as pas le choix, surtout avec un faible nombre d'instructions comme tu as là.
des fois, déporter une partie des opérations en dehors de la boucle permet de gagner du temps
exemple (désolé, je parles pas matlab, je parle C/C++)
for(int i = 0; i<5;i++) { int j=5 + variable_que_tu_va_lire_ché_pa_ou[i]; cout<<j; }
dans cet exemple, il va par exemple créer 5 fois la variable j, puis lui mettre son contenu
alors que faire ce qui suit marche tout aussi bien:
int j; for(int i = 0; i<5;i++) { j=5 + variable_que_tu_va_lire_ché_pa_ou[i]; cout<<j; }
et la on ne crée qu'une fois la variable....
donc dans cet exemple, tu as une partie temps constant d'execution y=1 qui a remplacé un truc y=x ... je suis aps bon avec les maths mois, ca me croque le cerveau ;)
et si tu avais de boucles for, ca aurai pu donné un truc y=x²...
donc bon, voila, c'est juste pour te dire déviter , si possible, de metrte certaines opérations dans du code: sur un petit exemple ca change pas grand chose, mais sur des gros volumes, tu perds vite du temps inutilement
bidjoss
Messages postés
24
Date d'inscription
mercredi 12 août 2009
Statut
Membre
Dernière intervention
4 février 2014
29 sept. 2009 à 17:28
29 sept. 2009 à 17:28
Okay merci Nabla,
Rq : Nabla est un hypnotiseur qui fait des "animations" dans des écoles dont j'ai beaucoup entendu parler.
Rq : Nabla est un hypnotiseur qui fait des "animations" dans des écoles dont j'ai beaucoup entendu parler.
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
29 sept. 2009 à 17:32
29 sept. 2009 à 17:32
Nabla est beaucoup de choses:
Nabla est un hypnotiseur
Nabla est un opérateur mathématique (j'ai appris ca que récemment)
Nabla est surtout mon prénom à l'envers ! (c'est un peu pour ca que c'est mon pseudo)
Nabla est un hypnotiseur
Nabla est un opérateur mathématique (j'ai appris ca que récemment)
Nabla est surtout mon prénom à l'envers ! (c'est un peu pour ca que c'est mon pseudo)