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 :

complexité de l'algo QuickSort


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
    82
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 82
    Par défaut complexité de l'algo QuickSort
    Bonjour

    je désire avoir une explication de l'ordre de complexite de l'algo QuickSort(tri rapide) dans le meilleur cas (nlog(n)) et dans le pire cas n^2 sachant que l'opération de base est la comparaison entre deux élements ?

    est ce que l'évaluation du pire cas vient d'une intuition ou bien il existe une mehode pour le connaitre sachant qu'il s'agit du cas où le pivot est l'élement le plus petit ! de même pour le meilleur cas - le pivot est toujours median -

    merci de votre aide

  2. #2
    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 t-student Voir le message
    est ce que l'évaluation du pire cas vient d'une intuition ou bien il existe une mehode pour le connaitre sachant qu'il s'agit du cas où le pivot est l'élement le plus petit ! de même pour le meilleur cas - le pivot est toujours median -
    Il suffit juste de dérouler l'algorithme : dans le pire des cas, il y aura n étapes (et à l'étape i, n-i comparaisons), dans le meilleur, il n'y aura que log2 n étapes (et à l'étape i, n-2^(i)+1 comparaisons).
    La partie compliquée dans l'analyse de la complexité du quicksort, c'est la complexité en moyenne.

    --
    Jedaï

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 82
    Par défaut
    Citation Envoyé par Jedai Voir le message
    dans le meilleur, il n'y aura que log2 n étapes (et à l'étape i, n-2^(i)+1 comparaisons).
    Jedaï
    je crois que dans le meilleur cas ça aurait du être n/(2^(i-1)) comparaison pour l'étape i ! si je ne me trompe pas ???

    lol

  4. #4
    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 t-student Voir le message
    je crois que dans le meilleur cas ça aurait du être n/(2^(i-1)) comparaison pour l'étape i ! si je ne me trompe pas ???
    A priori tu te trompes, tu comptes seulement la moitié des comparaisons (et avec des petites erreurs en plus). En fait il y a autant de comparaisons à effectuer que d'éléments non-pivots à chaque étape. Dans le pire des cas, on rajoute un pivot à chaque étape, alors que dans le meilleur, on en rajoute 2^(i-1), en cumulé, ça fait bien la formule que j'ai donné.

    --
    Jedaï

  5. #5
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    je pense aussi que tu te trompes.

    Pour ce qui est de la compléxité du QuickSort :
    - O(N log N) est la complexité moyenne et non dans le meilleur des cas. On la calcule après de nombreux calculs de proba que je ne saurai expliquer mais que tu trouveras très certainement sur google.
    - O(N^2) esl la complexité dans le pire des cas. Elle apparaît lorsque le pivot est toujours la première case de la partition à trier ET si le tableau à trier est déjà trié mais dans le sens inverse de celui qui l'on souhaite. Auquel cas la sous partition à trier est de taille N-1 de celle que l'on traite => N(N+1)/2 opération (de mémoire, mais je me trompe peut être).
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  6. #6
    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 ToTo13 Voir le message
    - O(N log N) est la complexité moyenne et non dans le meilleur des cas.
    Les deux mon capitaine... D'une part la complexité moyenne est toujours un O() de la complexité dans le meilleur des cas , et d'autre part, comme je viens de le montrer, la complexité dans le meilleur des cas est vraiment équivalente à du N log N.

    Citation Envoyé par ToTo13 Voir le message
    - O(N^2) esl la complexité dans le pire des cas. Elle apparaît lorsque le pivot est toujours la première case de la partition à trier ET si le tableau à trier est déjà trié mais dans le sens inverse de celui qui l'on souhaite. Auquel cas la sous partition à trier est de taille N-1 de celle que l'on traite => N(N+1)/2 opération (de mémoire, mais je me trompe peut être).
    "N(N-1) / 2" comparaisons en fait, si tu te rapportes à mon analyse. Par ailleurs le pire des cas se produit également si le tableau est trié dans le bon sens (sous condition qu'on prenne comme pivot la première case de la partition), on peut aussi avoir d'autre cas. Le pire cas est celui où le pivot choisi à chaque étape (quelle que soit la façon) est indistinctement le maximum ou le minimum de sa partition, ce que tu décris n'est qu'un cas particulier.

    --
    Jedaï

Discussions similaires

  1. problème avec un algo quicksort
    Par aaronlbk dans le forum C++
    Réponses: 3
    Dernier message: 14/08/2014, 11h31
  2. Aide sur complexité de cet algo
    Par laureat dans le forum Débuter
    Réponses: 4
    Dernier message: 18/09/2009, 13h33
  3. complexité d'un algo
    Par del__k dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 31/07/2006, 22h54
  4. algo de merge et quicksort
    Par jack_spyrow dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 22/06/2006, 12h21
  5. QuickSort algo lequel ?
    Par sony351 dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 05/08/2005, 10h55

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