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 :

recherche dans une matrice


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 71
    Points : 43
    Points
    43
    Par défaut recherche dans une matrice
    Bonsoir,
    j'ai une matrice carrée M telle que chaque ligne et chaque colonne est triée dans un ordre croissant (M[1, i] ≤ M[2, i] ≤… ≤ M[n, i] et M[i, 1] ≤ M[i, 2] ≤… ≤ M[i, n], avec i = 1, 2, …, n).
    je veux chercher un entier x donné dans la matrice M sachant que la complexité de l'algo est en O(n)
    qui peut m'aider svp??

  2. #2
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Fonction recherche (M:Mat ; n,x:Entier):boolean
    variable
        i,j:entier
        ok:boolean
    Début
       i<--1
       ok<--faux
       Tant que (i<=n) et non(ok) faire
            j<--1
            Tant que (j<=n) et non(ok) faire
                   si(M[i,j]=x) alors
                                         ok<--vrai
                                    sinon
                                         j<--j+1
                   FinSi
             Fin Tantque
             i<--i+1
       Fin Tantque  
    recherche<--ok
    Fin
    cette solution est de complexité : O(n²)

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 71
    Points : 43
    Points
    43
    Par défaut
    merci damosnet pour votre réponse,
    je connais cette solution, mais mon problème est que la complexité doit être en O(n).

  4. #4
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    C'est un exercice ?

    Réfléchis un peu, c'est pas si compliqué. Comment tu ferais à la main ?

  5. #5
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 71
    Points : 43
    Points
    43
    Par défaut
    oui c'est un exercice,
    trouver un algorithme n'est pas difficile, mais mon problème est dans la complexité

  6. #6
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 71
    Points : 43
    Points
    43
    Par défaut
    quelqu'un peut m'aider svp, c'est très urgent???

  7. #7
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Si tu devais élargir la dichotomie à une dimension supérieure, qu'est-ce que ça donnerait ?

  8. #8
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Je crains qu'il n'y ait pas de solution fiable à ton problème. Alors, un petit exemple pour t'expliquer. Je prends la matrice suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     101 102 103 104 105 106
     102 104 106 108 110 112
     103 106 109 112 115 118
     104 108 112 116 120 124
     105 110 115 120 125 130
     106 112 118 124 130 136
    Les choses suivantes peuvent arriver:
    • Si x=73, le problème n'a pas de solution.
    • Si x=109, il y a une solution unique: i=j=3.
    • Si x=112, il y a quatre solutions: i=2 et j=6; i=3 et j=4; i=4 et j=3; i=6 et j=1; laquelle est la bonne?
    • si x=117, le problème n'a pas de solution.

    Alors, relis les données de ton problème et, éventuellement, demande à ton prof. un complément d'information.

    Jean-Marc Blanc

  9. #9
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Citation Envoyé par FR119492 Voir le message
    Alors, relis les données de ton problème et, éventuellement, demande à ton prof. un complément d'information.
    Étrange comme raisonnement. Pour moi, si un algorithme trouve qu'il n'y a pas de solution au problème qui lui est donné, alors cet algo est viable.

  10. #10
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Pour moi, si un algorithme trouve qu'il n'y a pas de solution au problème qui lui est donné, alors cet algo est viable.
    Dans le monde réel, il y a des ingénieurs à qui leur employeur ou des clients donnent des problèmes à résoudre; il y a aussi des étudiants à qui leurs professeurs donnent des exercices. Dans un cas comme dans l'autre, si on ne trouve pas de solution, c'est un échec. Pour y remédier, il faut demander un complément d'information sur les données du problème et non se résigner à l'absence de solution.
    Jean-Marc Blanc

  11. #11
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Citation Envoyé par FR119492 Voir le message
    Pour y remédier, il faut demander un complément d'information sur les données du problème et non se résigner à l'absence de solution.
    Je suis d'accord avec cette phrase. Mais c'est l'homme qui doit effectuer ce travail supplémentaire, pas l'algorithme. Dans un premier temps, on utilise les outils dont on dispose ; si ceux-ci nous apprennent qu'il n'y a pas de solution au problème tel que formulé, alors il faut procéder autrement, utiliser d'autres outils. Mais on est très loin du problème du PO.

    Ici, il me semble évident que le PO est un étudiant (qui tarde à répondre) à qui on demande de trouver, s'il existe, l'index d'un entier dans une matrice partiellement triée. Mais effectivement, si cet entier n'existe pas, peut être l'algorithme peut-il retourner des informations supplémentaires. Par exemple, s'il faudra ensuite insérer l'entier recherché dans la matrice, peut être est-ce le moment de calculer à quel endroit celui-ci devra être inséré. Et à la vue des messages du PO, il est encore loin d'y être arrivé , alors avant de remettre en cause le problème tel que formulé ...

  12. #12
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 71
    Points : 43
    Points
    43
    Par défaut
    je pense ce code repond bien au pb posé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    i :=1
    j :=n
    tantque i<=n et j>=1 faire
      si M[i,j] =x alors 
         retourner (i,j)
      sinon 
         si M[i,j]<x alors
            i :=i+1
         sinon
            j :=j-1
         fin si
      fin si
    fin tantque
    retourner (-1,-1)

  13. #13
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Salut, effectivement, on a du O(n). Il est néanmoins possible de faire mieux. .

Discussions similaires

  1. [XL-2010] Recherche dans une matrice avec doublons (formule ou VBA)
    Par Lucorah dans le forum Excel
    Réponses: 7
    Dernier message: 07/05/2012, 17h16
  2. [XL-2007] Recherche dans une Matrice dynamique
    Par Just-Soft dans le forum Excel
    Réponses: 20
    Dernier message: 12/07/2010, 17h53
  3. Recherche dans une matrice
    Par clodius dans le forum Excel
    Réponses: 3
    Dernier message: 05/08/2008, 08h33
  4. [Débutant] Recherche de minimum non nul dans une matrice
    Par sebastien69 dans le forum MATLAB
    Réponses: 2
    Dernier message: 05/06/2007, 16h00
  5. Réponses: 1
    Dernier message: 24/05/2007, 14h46

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