Imprimer
Catégorie : Programmation Python - 2nde SNT
Affichages : 5667

Objectif

Trier les éléments d'une liste par ordre croissant en utilisant une boucle bornée et une boucle non bornée. Le premier essai est de mon cru, le second ne l'est pas.


Premier script

Etape 1 - Présentation du principe

Etape 2 - Application du tri pour le premier élément de la liste

l=[7,2,1,4,2,8,7,9,3,2,5]
tri=[]

print(l,tri)
print("****")

a=l[0]
l.pop(0)

for i in range(len(l)):
    if a>l[i]:
        a,l[i]=l[i],a

tri.append(a)
print(l,tri)

Etape 3 - La magie de python

Script final

l=[7,2,1,4,2,8,7,9,3,2,5]
tri=[]

print(l,tri)
print("****")

while len(l)>0:
    a=l[0]
    l.pop(0)

    for i in range(len(l)):
        if a>l[i]:
            a,l[i]=l[i],a

    tri.append(a)
    print(l,tri)

Second script

Sur le net j'ai trouvé cet algorithme. Ici l'idée est de sélectionner un élément de la liste puis de le comparer aux éléments d'avant. S'il est plus petit alors il remonte...

Saurez vous le scipter ;))) - L'algorithme se trouve en dessous de cette image.

Algorithme du tri ici

Tri par insertion - ceci n'est pas un script !

Données
L: liste d'entiers
a,i,j: entiers

Début
    Pour i variant de 1 à len(L)
    Faire
        a <- L[i]
        j <- i
        Tant que j>0 et L[j-1]>a
        Faire
            L[j] <- L[j-1]
            j <- j-1
        Fin faire
        L[j] <- a
    Fin faire
    Retourner L
Fin

Ne trichez pas - correction ici