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

Langages de programmation Discussion :

structures de données dans les langages


Sujet :

Langages de programmation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Par défaut structures de données dans les langages
    Bonjour,
    J’ai lu sur un forum la question suivante et j’aimerais avoir votre avis :
    Devant un contexte d’implémentation, je ne pense qu’aux tableaux et aux listes. J’ai tort, parce qu’il existe le hachage et les arbres. Pouvez-vous me dire dans quels cas dois-je y penser ? Seraient ils performants par rapport aux tableaux et aux listes tout en sachant les avantages et les inconvénients de ces deux derniers.
    Ma réponse non convainquant :
    Hachage : quand on n’a pas besoin de clés triés.
    Arbre : quand on a une hiérarchie.
    D’une manière générale, on ne peut préférer une structure de données à une autre structure qu’en présence d’un contexte précis. Exemple : préférer une liste si on a besoin de trier mais attention à sa dimension sinon, il faudra passer aux arbres.
    Cette dernière citation a fait débat. Quel est donc votre avis sur tout cela.

    Bien cordialement

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    C'est un vieux debat.

    Le hash te permet un acces en temps constant a tous tes elements (modulo les collisions), et est bien adapte pour de tres grands volumes de donnees.

    Un arbre te permet d'elaguer, c'est a dire de ne pas du tout parcourir certaines branches, ce qui est pratique dans certaines recherches. Mais le temps d'acces a une donnee depend de la hauteur de l'arbre.

    Les tableaux sont simples a utiliser et a conceptualiser, mais posent vite des problemes lorsque tu dois gerer des grandes tailles. De plus, tout ajout ou suppression te force a retrier tout le tableau, ce qui est vite penible (surtout que trier un tableau deja trie ne se fait pas bien avec quicksort, puisqu'on est en N2 dans ce cas).

    Les listes enfin permettent facilement un parcours sequentiel, mais sont lentes a parcourir.


    La ou tu as raison, c'est que c'est le contexte qui doit determiner l'utilisation de telle ou telle structure.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    Les listes enfin permettent facilement un parcours sequentiel, mais sont lentes a parcourir.
    Et ne s'adaptent pas bien du tout par exemple à des recherches dichotomiques..

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Et ne s'adaptent pas bien du tout par exemple à des recherches dichotomiques..
    Mettons pas les listes standards.

    Parce qu'il y a aussi des structures plus complexes que ces 4 la, comme les listes circulaires avec des pointeurs supplementaires vers le log(N)-ieme element de la liste.
    Mais si la recherche devient performante, il est necessaire que ce type de liste soit relativement statique, car si l'insertion ou la suppression d'un petit nombre d'elements (par rapport a N), il faut bien faire attention au fait que l'ajout/suppression d'un trop grand nombre d'elements implique de reparcourir toute la liste pour remettre les pointeurs vers les log(N)-ieme elements.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    ....
    A un coût du doublement ou triplement de la mémoire utilisée


    Disons que oui, ça dépend entièrement du contexte...

  6. #6
    Membre éclairé
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Par défaut
    Merci pour vos réponses aussi pertinentes que d'habitude. Les choses sont beaucoup plus clairs et complètes comparant à ma réponse concise.
    Je tiens à vous en remercier car bien du monde bénéficiera de ces savoirs.
    Bien à vous

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

Discussions similaires

  1. paquet de données dans les ports
    Par kynri dans le forum Windows
    Réponses: 6
    Dernier message: 23/12/2007, 19h00
  2. Structurer des données dans un tableau
    Par julie75 dans le forum Débuter
    Réponses: 21
    Dernier message: 18/12/2007, 23h20
  3. [Conception] Comment sont chargées les données dans les jeux?
    Par drcd dans le forum Développement 2D, 3D et Jeux
    Réponses: 15
    Dernier message: 24/10/2006, 15h09
  4. Réponses: 17
    Dernier message: 22/09/2006, 17h34
  5. inserer de longues donn dans les champs
    Par zorian dans le forum Outils
    Réponses: 5
    Dernier message: 29/06/2006, 20h39

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