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 :

Algorithme de tri


Sujet :

Algorithmes et structures de données

  1. #1
    Membre habitué Avatar de Onimaru
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Turquie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 283
    Points : 129
    Points
    129
    Par défaut Algorithme de tri
    Salut à tous, j'ai une petite question :

    Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure Trier(var T : array of integer);
    var I, J, Temp : integer;
    begin
     for I := High(T) downto 1 do
      for J := 0 to I do
       if T[J] > T[I] then
        begin
         Temp := T[J];
         T[J] := T[I];
         T[I] := Temp
        end
    end;

    De quel algorithme de tri s'agit t il ???

  2. #2
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Si I allait de 1 à High(T) alors ce serait un tri par insertion.
    Cdlt,
    -- Yankel Scialom

  3. #3
    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 : 51
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Onimaru Voir le message
    De quel algorithme de tri s'agit t il ???
    [ame="http://www.youtube.com/watch?v=gWkvvsJHbwY"]la réponse en image[/ame]
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  4. #4
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Au temps pour moi, c'est bien celui-ci.

    [ame="http://www.youtube.com/watch?v=k4RRi_ntQc8"]« I think the bubble sort would be the wrong way to go. »[/ame]
    -- Yankel Scialom

  5. #5
    Membre habitué Avatar de Onimaru
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Turquie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 283
    Points : 129
    Points
    129
    Par défaut
    C'est quoi ce tri alors ???
    Il a les caractéristiques du tri par sélection et insertion et bulles.
    La première fois que j'ai essayé de trier un tableau j'ai pensé à ça mais je ne sais pas encore de quel tri il s agit ???

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Comme l'a dit pseudocode, il s'agit du tri à bulles.

  7. #7
    Membre habitué Avatar de Onimaru
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Turquie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 283
    Points : 129
    Points
    129
    Par défaut
    mais le tri à bulle procède en prenant chaque deux éléments successifs d'après ce que je sais ???

  8. #8
    Invité
    Invité(e)
    Par défaut


    Ce tri :
    - regarde les éléments 1 et 2, il les permute s'ils sont pas dans le bon ordre.
    - regarde les éléments 2 et 3, il les permute s'ils sont pas dans le bon ordre.
    - regarde les éléments 3 et 4, il les permute s'ils sont pas dans le bon ordre.
    - regarde les éléments 4 et 5, il les permute s'ils sont pas dans le bon ordre.
    - ...
    - regarde les éléments n-1 et n, il les permute s'ils sont pas dans le bon ordre.

    A là fin de cette passe, il n'y a qu'un élément de trié : c'est le maximum. Ce maximum est maintenant placé tout à droite du tableau. On ne s'en occupe plus. On recommence donc la même procédure sur le tableau mais sans considérer son dernier élément.

    On fait ça jusqu'à ce qu'on ne considère plus qu'un seul élément (le tableau est alors trié).

    Dans ton code, la variable qui joue le rôle de la taille du tableau que l'on considère à l'étape courante, c'est la variable I. Au début elle est égale à la taille tu tableau complet, et à chaque étape, on met l'élément maximum (qui n'a pas encore été trié) à droite, et on diminue la taille du tableau de 1.

    C'est exactement comme le tri par sélection sauf qu'au lieu d'échanger directement le maximum avec l'élément non trié le plus à droite, on échange successivement le maximum avec tous les éléments qui le séparent de sa position finale ... ce tri n'est pas très utile.


    ------------------
    EDIT : je me suis trompé aussi, ce n'est effectivement pas le tri à bulles
    Dernière modification par Invité ; 04/05/2011 à 20h05.

  9. #9
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Relisez attentivement le code posté : les deux éléments comparés ne sont (a priori) pas successifs. Mais d'un autre coté, ce n'est pas non plus un tri par insertion (j'ai moi aussi été trop vite).

    Onimaru : ton algo n'est pas un algo classique de tri, mais il offre la même inefficacité que le tri à bulles (sans offense).
    -- Yankel Scialom

  10. #10
    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 : 51
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par prgasp77 Voir le message
    Relisez attentivement le code posté : les deux éléments comparés ne sont (a priori) pas successifs. Mais d'un autre coté, ce n'est pas non plus un tri par insertion (j'ai moi aussi été trop vite).
    Ah oui, effectivement, on ne compare pas les éléments successifs. Moi aussi j'ai lu le code trop vite.

    C'est donc un tri par sélection, mais avec permutation des candidats intermédiaires (ce qui ne sert pas a grand chose).
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  11. #11
    Membre habitué Avatar de Onimaru
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Turquie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 283
    Points : 129
    Points
    129
    Par défaut
    Salut à tous,
    merci pour les réponses : donc ce tri est un tri hybride entre le tri par sélection est le tri par bulles, effectivement son principe est comme expliqué par hellfoust et c'est comme ça que j'ai pensé la première fois que l'ai écrit.
    ton algo n'est pas un algo classique de tri
    c'est ce point précis qui m'a poussé a poser cette question sur le forum et non pour prouver qu'il est ultra efficace !!!
    en effet dans les examens chaque fois qu'il y a question de trier des éléments(le but de la question n'est pas le tri) j'utilise cette méthode car elle est simple tout court mais personne ne le comprend directement.
    En tout cas personnellement je l'ai classé comme tri par sélection, mais le fait d'avoir plusieurs permutations intermédiaires m'a rendu perplexe si vous voyez ce que je veux dire.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Onimaru Voir le message
    en effet dans les examens chaque fois qu'il y a question de trier des éléments(le but de la question n'est pas le tri) j'utilise cette méthode car elle est simple tout court mais personne ne le comprend directement.
    Tu peux faire le tri par sélection en rajoutant une seule ligne (12 lignes pour ta version, 13 lignes pour celle-ci) :

    Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure Trier(var T : array of integer);
    var I, J, Max, IndiceDuMax : integer;
    begin
     for I := High(T) downto 1 do
      for J := 0 to I do
       if T[J] > Max then
        begin
         Max := T[J];
         IndiceDuMax := J;
        end
       T[IndiceDuMax] = T[I];
       T[I] = Max;
    end;

  13. #13
    Membre habitué Avatar de Onimaru
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Turquie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 283
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par hellfoust Voir le message
    Tu peux faire le tri par sélection en rajoutant une seule ligne (12 lignes pour ta version, 13 lignes pour celle-ci) :

    Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure Trier(var T : array of integer);
    var I, J, Max, IndiceDuMax : integer;
    begin
     for I := High(T) downto 1 do
      for J := 0 to I do
       if T[J] > Max then
        begin
         Max := T[J];
         IndiceDuMax := J;
        end
       T[IndiceDuMax] = T[I];
       T[I] = Max;
    end;
    Oui je sais ça, la différence réside dans le fait que le tri par sélection ne permute que le minimum(ou le maximum) alors que l'algorithme en question fait des permutations supplémentaires.

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

Discussions similaires

  1. Complexité de l'algorithme de Tri Fusion
    Par judge06 dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 26/03/2007, 22h04
  2. A propos des algorithmes de tri..
    Par Kerwando dans le forum C++
    Réponses: 4
    Dernier message: 19/08/2006, 11h43
  3. Probleme avec mon algorithme de tri
    Par kaygee dans le forum Langage
    Réponses: 6
    Dernier message: 09/01/2006, 21h23
  4. Réponses: 16
    Dernier message: 10/11/2005, 22h51
  5. algorithme de tri tableau :afficher que les éléments unique
    Par sofiane61 dans le forum Algorithmes et structures de données
    Réponses: 19
    Dernier message: 31/03/2005, 19h50

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