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 :

[Algorithmique] Déterminer la borne inférieure du Tri rapide.


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut [Algorithmique] Déterminer la borne inférieure du Tri rapide.
    Salut,

    Quelqu'un pourrait m'aider à montrer que la borne inférieure du tri rapide est nlogn?
    j'ai trouvé ce lien mais je ne pige pas trop ce qu'il entend par arbre de décision.

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par rvfranck Voir le message
    Quelqu'un pourrait m'aider à montrer que la borne inférieure du tri rapide est nlogn?
    ??

    Je suppose que la question est "Montrer que la complexité minimum de l'algorithme du tri-rapide est n.log(n)". c'est ca ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    oui, effectivement.

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Et bien la complexité minimale du quicksort c'est lorsque l'arbre est parfaitement équilibré. A chaque itération les sous-listes sont partagées en deux moitiés égales.

    iteration 0: 1 liste de taille n
    iteration 1: 2 listes de taille n/2
    iteration 2: 4 listes de taille n/4
    iteration 3: 8 listes de taille n/8
    ...
    iteration i: 2^i listes de taille n/2^i
    ...
    iteration max-1: 2^(max-1) = n/2 listes de taille 2
    iteration max: 2^max = n listes de taille 1

    La complexité est donc
    C = (1)*n + (2)*n/2 + (4)*n/4 + ... + (n/4)*4 + (n/2)*2
    C = n + n + n + ....

    Le tout est de savoir combien il y a de terme dans la suite '...'
    Il y en a "max" tel que "2^max = n", donc max = log(n)/log(2)

    la complexite est donc:

    C = n * log(n)/log(2) = O(n*log(n))
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    ??

    Je suppose que la question est "Montrer que la complexité minimum de l'algorithme du tri-rapide est n.log(n)". c'est ca ?
    Je conclus donc que j'ai pas bien saisi ta question. En fait on me demande de montrer que dans le pire des cas, le temps du quicksort est dans oméga (nlogn).

    En procédant de la même manière et en changeant les = en >= cela reste t'il toujours correct dans le cas favorable?

  6. #6
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    En procédant de la même manière et en changeant les = en >= cela reste t'il toujours correct dans le cas favorable?

  7. #7
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par rvfranck Voir le message
    En fait on me demande de montrer que dans le pire des cas, le temps du quicksort est dans oméga (nlogn).
    Ca va être difficile vu que c'est faux... Dans le pire des cas, la complexité du quicksort est en O(n^2).

    --
    Jedaï

  8. #8
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    C'est faux? je croyais pourtant que les tris par comparaison étaient tous dans oméga(nlgn). dans toutes les situations.
    Ou alors le tri rapide n'est pas un tri par comparaison? peut être je me trompe, je vais vérifier.

    Je précise quand même que O(n^2) est un majorant, mais moi je parle de omega, le minorant.

  9. #9
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par rvfranck Voir le message
    En fait on me demande de montrer que dans le pire des cas, le temps du quicksort est dans oméga (nlogn).
    Citation Envoyé par rvfranck Voir le message
    Je précise quand même que O(n^2) est un majorant, mais moi je parle de omega, le minorant.
    Faudrait savoir ce que tu veux.

    Dans "LE" pire des cas le quicksort est en O(n^2). Dans les autres cas il est proportionnelle a n*log(n).
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. Pb tri rapide
    Par Vinzius dans le forum C
    Réponses: 9
    Dernier message: 10/04/2006, 18h55
  2. tri rapide étéractif
    Par renardmp dans le forum Général Python
    Réponses: 3
    Dernier message: 20/02/2006, 02h12
  3. Tri rapide
    Par mikees dans le forum Assembleur
    Réponses: 1
    Dernier message: 19/12/2005, 21h53
  4. Tri Rapide sur un CLIST
    Par ensisoft dans le forum MFC
    Réponses: 9
    Dernier message: 13/12/2005, 23h22
  5. Tri rapide
    Par DBBB dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 10/12/2004, 17h54

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