IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

[Débutant]Boucle imbriquée avec des bornes différentes


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 36
    Points : 44
    Points
    44
    Par défaut [Débutant]Boucle imbriquée avec des bornes différentes
    Bonjour,
    J'ai une question concercant un algorithme avec une boucle imbriquée dans une autre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Pour i de 1 à b1 faire
        ...
         Pour j de 1 à b2 faire
             ...
         Finpour
     Finpour
    En supposant que b1 et b2 sont des entiers différents et que les corps d'instructions des boucles ne sont constitués que d'instructions élémentaires, peut-on en déduire que la complexité dans le pire des cas est O(b1*b2) et poser n=b1*b2 et conclure que la complexité est en O(n)? Merci pour d'éventuels éclaircissements.

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    peut-on en déduire que la complexité dans le pire des cas est O(b1*b2)
    Tout à fait.

    poser n=b1*b2 et conclure que la complexité est en O(n)?
    Je ne vois pas pourquoi tu voudrais faire ça, ça n'a pas de sens sauf contexte particulier... Une complexité se calcule toujours par rapport à la taille de ses paramètres, s'il y a plusieurs paramètres, il est normal que la complexité dépende de plusieurs tailles. Ici par exemple ce que tu fais aurais un sens si b1 et b2 était les deux dimensions d'une matrices, parce qu'on peut effectivement dire que b1*b2 est la taille de la matrice (et encore, dans certains problèmes on ne pourra pas), mais si b1 était la taille du premier paramètre et b2 la taille du deuxième, faire ce que tu fais est déjà plus contestable...
    En plus là la formule est simple, mais imagine une formule en O(b1 * b2 * 2^b1), tu vois bien que tu ne peux plus exprimer ta formule en terme de "n" !

    --
    Jedaï

  3. #3
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Si tu veux pouvoir écrire O(n), j'imagine que c'est parce que pour toi une complexité doit dépendre d'un seul paramètre pour être rangé en classe de complexité, O(n) correspondant à une complexité linéaire... Pour plusieurs paramètres on parle de classe de complexité par rapport à un paramètre souvent : par exemple premier paramètre de taille n1, deuxième de taille n2.
    Complexité O(n1 * 2^n2), alors l'algorithme est de complexité linéaire par rapport au premier paramètre, et exponentielle par rapport au second.

    --
    Jedaï

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/05/2006, 21h08
  2. Ouverture d'un formulaire avec des requêtes différentes
    Par Jérémy VAUTIER dans le forum Access
    Réponses: 3
    Dernier message: 02/03/2006, 07h31
  3. Changer plusieur style avec des IDs différents?
    Par YanK dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/07/2005, 14h33
  4. [XSL]boucle imbriquée avec condition
    Par kor dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 11/01/2005, 14h19
  5. Réponses: 5
    Dernier message: 19/08/2004, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo