Aller au contenu

Fonction tri que je n'arrive pas à expliquer


rm57Sp

Messages recommandés

Membre, 20ans Posté(e)
rm57Sp Membre 17 messages
Forumeur balbutiant‚ 20ans‚
Posté(e)

Bonjour, j'ai une fonction à faire et à commenter pour demain mais je ne saurais pas comment m'y prendre pour l'expliquer devant toute ma classe.

 

On considère l'algorithme de tri de tableau suivant : à chaque étape, on parcourt depuis le début du tableau tous les éléments non rangés et on place en dernière position le plus grand élément.

 Exemple avec le tableau : t = [41, 55, 21, 18, 12, 6, 25]

Etape 1 : on parcourt tous les éléments du tableau, on permute le plus grand élément avec le dernier.

Le tableau devient t = [41, 25, 21, 18, 12, 6, 55]

Etape 2 : on parcourt tous les éléments sauf le dernier, on permute le plus grand élément trouvé avec l'avant dernier.

Le tableau devient : t = [6, 25, 21, 18, 12, 41, 55] Et ainsi de suite.

Le code de la fonction tri_iteratif qui implémente cet algorithme est donné ci-dessous.

 

def tri_iteratif(tab):
    for k in range((len(tab)-1), 0,-1):
        imax = k
        for i in range (0, k):
            if tab > tab [imax]:
                imax = i
        if tab [imax] > tab [k]:
            tab [k] , tab[imax] = tab[imax] , tab [k]
    return tab

Lien à poster
Partager sur d’autres sites

Annonces
Maintenant
Membre, 72ans Posté(e)
Frank_N Membre 5 488 messages
Maitre des forums‚ 72ans‚
Posté(e)

Sans doute la méthode de tri la plus débile que je n'ai jamais vu. Imaginez ce que ça va donner si vous avez un million d'items à trier. Chaque fois que votre fonction sera appelée, vous aurez le temps d'aller boire un café au bistrot du coin.

Lien à poster
Partager sur d’autres sites

Membre, Explorateur de Nuages, 47ans Posté(e)
Pheldwyn Membre 25 236 messages
47ans‚ Explorateur de Nuages,
Posté(e)

Bah c'est un tri par sélection, non ? Trié sur le max au lieu du min, mais ça revient à ça.

Par contre je ne vois pas en quoi la fonction est itérative dans son implémentation.

Lien à poster
Partager sur d’autres sites

Membre, 154ans Posté(e)
Black Dog Membre 5 072 messages
Maitre des forums‚ 154ans‚
Posté(e)
Il y a 9 heures, Frank_N a dit :

Sans doute la méthode de tri la plus débile que je n'ai jamais vu.

Vous dites cela sans doute parce que vous avez oubliez ce que c'était que de ne pas savoir. Sans quoi votre remarque aurait été moins agressive et constructive.

Lien à poster
Partager sur d’autres sites

Membre, Le prendre au sérieux, nuit gravement à la santé, Posté(e)
azad2B Membre 5 932 messages
Le prendre au sérieux, nuit gravement à la santé,
Posté(e)
Il y a 4 heures, Pheldwyn a dit :

Par contre je ne vois pas en quoi la fonction est itérative dans son implémentation.

Elle peut le devenir si l'on crée un second tableau formé des N-1 premiers élément à chaque itération.

En fait c'est un tri à "bulles lourdes" si jose m'exprimer ainsi.

Lien à poster
Partager sur d’autres sites

Annonces
Maintenant

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×