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 d'un élément


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 9
    Points : 12
    Points
    12
    Par défaut recherche d'un élément
    bonjour
    je recherche deux autres façons de revercher un élément dans un vecteur non-trié? j'en ai trouver un mais je n'arrive pas à trouver les deux autres!
    merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    I=0 
    TANT QUE NON FIN DE LISTE 
     SI ELEMENT[i] EST DIFFERENT DE ELEMENT_CHERCHE 
      ALORS INCREMENTER I 
     SINON AFFICHER TROUVE EN I 
     IS 
    FIN TANT QUE

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Salut, tu as la recherche Dichotomique: http://fr.wikipedia.org/wiki/Dichotomie
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Logiquement la dichotomie c'est pour un vecteur trié.
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par nicolas.sitbon Voir le message
    Logiquement la dichotomie c'est pour un vecteur trié.
    Arf oui c'est vrai il a un non-trié lui, pas d'bol
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Recherche aléatoire... Tu tires au hasard l'indice et tu fais confiance à ta chance mais c'est un peu lourd pour rechercher un élément dans un tableau.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 308
    Points : 373
    Points
    373
    Par défaut
    Personnellement, je ne vois pas d'autres techniques pour chercher dans un vecteur non trié... À part vérifier toutes les valeurs jusqu'à trouver la bonne...

  7. #7
    Membre éprouvé

    Homme Profil pro
    Ingénieur logiciel embarqué
    Inscrit en
    Juillet 2002
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur logiciel embarqué
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2002
    Messages : 386
    Points : 1 164
    Points
    1 164
    Par défaut
    cela doit etre fondemantalement differant?
    sinon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    I=FIN DE LISTE
    TANT QUE (I >= DEBUT DE LISTE) ET (ELEMENT[i] EST DIFFERENT  ELEMENT_CHERCHE)
     DECREMENTER I 
    FIN TANT QUE 
     
    SI I >= DEBUT DE LISTE
     AFFICHER TROUVE EN I
    une autre methode peut consister justement a trier ton vecteur et chercher ensuite (je voi pas trop l'interet vu que c'est plus long mais bon)

  8. #8
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    Bonjour,
    Citation Envoyé par PsychoH13 Voir le message
    Personnellement, je ne vois pas d'autres techniques pour chercher dans un vecteur non trié... À part vérifier toutes les valeurs jusqu'à trouver la bonne...
    Si, il y a les méthodes de hachage !

    Cordialement,
    Sidahmed.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 308
    Points : 373
    Points
    373
    Par défaut
    Citation Envoyé par sidahmed Voir le message
    Bonjour,

    Si, il y a les méthodes de hachage !

    Cordialement,
    Sidahmed.
    Disons que les méthodes de hachages impliquent une sorte de tri aussi...

  10. #10
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    Citation Envoyé par PsychoH13 Voir le message
    Disons que les méthodes de hachages impliquent une sorte de tri aussi...
    Je pense pas, pour gagner en temps d'accès on utilise la méthode dichotomique dans le cas d'un tableau trié et la méthode de hachage dans le cas d'un tableau non trié, voire trié ! Sans parler des arbres binaires de recherche, B-arbres, hachage dynamique...

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    Mais pour pouvoir utiliser une méthode de hachage, il faut être capable de définir la fonction de hachage. Ce n'est pas à proprement parler un tri, mais dans l'énoncé, rien ne nous permet de savoir comment les données sont placées dans la liste.
    Pour ce qui est des arbres, c'est un peu le même problème : il faut avoir inséré les données dans l'arbre avant d'y faire une recherche. Donc ce que tu proposes en gros, c'est de changer la structure des données, puis ensuite d'exploiter cette nouvelle structure. Je n'ai pas l'impression que ça répond à la question, je rejoins PsychoH13.

    Peut-être que la question n'est pas de trouver un autre algorithme, mais une autre manière de l'implémenter ? Par exemple, récursivement :
    Recherche :
    Si fin liste, pas trouvé
    Si 1er élement = recherché, trouvé
    Sinon, recherche (suite).

  12. #12
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    Bonjour,
    Citation Envoyé par fremen167 Voir le message
    Mais pour pouvoir utiliser une méthode de hachage, il faut être capable de définir la fonction de hachage. Ce n'est pas à proprement parler un tri, mais dans l'énoncé, rien ne nous permet de savoir comment les données sont placées dans la liste.
    J'ai pas dit que les méthodes de hachage s'appliquent dans le cas des tableaux (fichiers) ordonnés, tu peux insérer des éléments dans n'importe quel ordre, ensuite la recherche d'un élément se fait en 2 accès au plus.

  13. #13
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Le problème avec la méthode de hachage est qu'elle suppose une connaissance du tableau d'origine (et donc avoir potentiellement recherché l'élément que l'on veut chercher ...). Autre problème, si la fonction de hachage est mal choisie, il peut y avoir des collisions ce qui entraîne une gestion un peu plus délicate.

    La méthode aléatoire n'est vraiment pas une bonne méthode, puisque si on veut rechercher l'élément, il faudra tout de même tester toutes les positions du tableau. Tu rajoutes donc le tirage aléatoire (sans remise et uniforme), sans rien ajouter.

    Sinon, pour en revenir au PO, a vrai dire, si tu ne sais rien sur ton tableau, la méthode brute est la seule. Ensuite qu'elle soit récursive ou non, c'est une question de paradigme de programmation, mais ça reste fondamentalement la même chose.

  14. #14
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    Bonjour,
    Citation Envoyé par PRomu@ld Voir le message
    Autre problème, si la fonction de hachage est mal choisie, il peut y avoir des collisions ce qui entraîne une gestion un peu plus délicate.
    C'est pour ça qu'on parle de hachage dynamique et en particulier le hachage linéaire !

    Cordialement,
    Sidahmed.

  15. #15
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    C'est pour ça qu'on parle de hachage dynamique et en particulier le hachage linéaire !
    C'est bien ce que j'entendais par gestion plus délicate.

    Comme l'a dit fremen167, ça revient à changer la structure de donnée, ce qui n'est pas forcément ce que veut alexei46.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Parcourir une page html à la recherche d'un élément
    Par othmane126 dans le forum Langage
    Réponses: 4
    Dernier message: 19/01/2008, 15h33
  2. recherche d'un élément
    Par alexei46 dans le forum C
    Réponses: 9
    Dernier message: 18/11/2007, 23h29
  3. syntaxe de recherche d'un élément dans liste
    Par mussara dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 26/10/2006, 19h17
  4. Recherche d'un élément dans une liste triée (vitesse)
    Par Rodrigue dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 18/05/2006, 09h23
  5. [VB.NET][ADO.NET] Recherche d'un élément
    Par cyrcroix dans le forum Accès aux données
    Réponses: 3
    Dernier message: 26/10/2005, 08h40

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