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 :

Construction d'un tas en O(n)


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 120
    Par défaut Construction d'un tas en O(n)
    Bonsoir,

    je travaille actuellement sur la notion de tas (ou "heap", "heapsort"). J'ai une procédure qui réalise une insertion dans ce tas en O(log n).
    Insérer n éléments me coûte alors 0(n log n).
    J'ai lu dans un ouvrage d'algorithmique qu'il est possible de construire un tas en 0(n) mais je ne trouve pas de ressources supplémentaires ou d'algorithme support sur le net.

    Quelqu'un saurait-il m'aiguiller ?

    D'avance, merci aux lecteurs de ce post !

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 357
    Par défaut
    Construire un tas en O(n) veut dire qu'on a un algo de tri en O(n)...
    Heapsort est en O(n) sur un tas trié, mais en O(n log n) dans le cas général.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 120
    Par défaut ok mais
    je ne suis pas sûr de bien comprendre.

    J'ai clairement lu qu'on peut "remplir" et uniquement remplir un tableau trié comme un tas, après avoir restreint sa taille, en O(n).

    Il ne s'agit alors pas encore d'un tri, car pour ce faire, il faudra encore supprimer N fois.
    Il se eut que je me trompe, mais je n'ai pas bien compris ce que tu disais.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Par défaut
    Tu as raison, on peut construire un tas en O(n) mais le tri par tas reste en O(n log n). Cette méthode de construction bien connue est due à Floyd (1964) : tu parcours ton tableau de la fin vers le début, en "faisant descendre" chaque élément à sa bonne place dans le tas.

    Tu peux trouver un exemple dans le premier pseudo-code donné par l'article wikipédia sur le tri par tas.

    L'analyse de la complexité n'est cependant pas évidente, il faut faire le calcul.

Discussions similaires

  1. [JBuilder 7] Construction d'executable natif
    Par renaudfaucon dans le forum JBuilder
    Réponses: 3
    Dernier message: 24/11/2006, 22h28
  2. [JONAS][EJB]erreur sur la construction des EJB
    Par silvermoon dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 04/06/2004, 18h53
  3. Réponses: 5
    Dernier message: 20/11/2003, 16h36
  4. [JBuilder 9] Construction d'exécutables natifs
    Par jamloum dans le forum JBuilder
    Réponses: 3
    Dernier message: 10/10/2003, 11h16
  5. [jAPI]Probleme de construction
    Par exe dans le forum C++Builder
    Réponses: 10
    Dernier message: 07/08/2003, 10h03

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