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 :

Meilleure structure pour gérer une base de données


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Meilleure structure pour gérer une base de données
    Bonjour,

    Je dois réaliser un programme gérant les revenus d'une population. On a trois paramètres: le nom de l'individu , son adresse et ses revenus. Il ne peut pas y avoir plusieurs fois le même nom à la même adresse.
    Quelle structure est la plus adaptée pour résoudre ce problème sachant que le temps d'execution doit être le plus court possible.
    J'hésite entre un tas trié et un AVL.

  2. #2
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

  3. #3
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Le plus perfomant me semble être une table de hachage qui pointe vers le tableau contenant les enregistrements.
    Le hash code sera basé sur la concaténation Nom+Adresse.

    La taille de la table sera la plus grande possible en fonction de la mémoire que l'on veut allouer à l'application.
    Par exemple, une table de hash de 64 Mo pourra gérer des hash codes de 24 bits (64Mo = 256x256x256x4 octets) avec un risque de collision assez faible si on gère quelques dizaines de milliers de nom-addresse.

    Pour gérer les collisions, on ajoutera aux enregistrements les index permettant de gérer les collisions en chainant entre eux les enregistrements de même hash code.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  4. #4
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Le plus perfomant me semble être une table de hachage qui pointe vers le tableau contenant les enregistrements.
    Le hash code sera basé sur la concaténation Nom+Adresse.

    La taille de la table sera la plus grande possible en fonction de la mémoire que l'on veut allouer à l'application.
    Par exemple, une table de hash de 64 Mo pourra gérer des hash codes de 24 bits (64Mo = 256x256x256x4 octets) avec un risque de collision assez faible si on gère quelques dizaines de milliers de nom-addresse.

    Pour gérer les collisions, on ajoutera aux enregistrements les index permettant de gérer les collisions en chainant entre eux les enregistrements de même hash code.
    Oui, en effet, c'est mieux qu'une multimap si il n'a pas besoin de rechercher séparément par nom ou par adresse mais toujours par nom+adresse, ce qui est ele plus vraisemblable.
    Est-ce qu'il y a une structure de données C++ pour les tables de hachage ?
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/07/2010, 10h15
  2. Meilleur langage pour gérer une base SQL
    Par carmensam dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 01/05/2008, 17h24
  3. gérer une base de donnée MySql via C++
    Par thiane dans le forum Bibliothèques
    Réponses: 9
    Dernier message: 19/05/2005, 16h19
  4. Réponses: 8
    Dernier message: 23/03/2005, 19h28
  5. aide pour exporter une base de donnée
    Par matt55 dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 06/04/2004, 14h28

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