Explication algorithme
E
T
Bonjour,
Voici le code commenté en espérant t'aider à mieux le comprendre :
Sub Exo1()
'déclaration des variables (toutes en Integer, Entier dont les bornes sont -32768 et 32767)
Dim t(1 To 10) As Integer 'ici, un tableau à une dimension de 10 éléments
Dim i As Integer
Dim tmp As Integer
Dim permut As Integer
'initialise la variable qui par défaut vaut 0 afin que la boucle plus bas puisse se dérouler
'au moins une fois
permut = 1
'charge dans le tableau les valeurs qui sont dans les
'cellules de la feuille dont le nom du module est Feuil1 de A1 à J1
For i = 1 To 10
t(i) = Feuil1.Cells(1, i)
Next i
'permut sert d'interrupteur (bouclera tant que permut vaudra 1)
While permut = 1
'mets à 0 et si dans le cas où le tableau est déjà trié
'de cette façon on sortira de la boucle While-Wend
permut = 0
'boucle sur le tableau en prenant soint de ne pas dépasser le dernier élément
'car sinon, "t(i + 1)" génèrera une erreur de dépassement d'indice
For i = 1 To 9
If t(i) > t(i + 1) Then
'comme le test est positif, positionne à 1 pour pouvoir continuer
'la boucle primaire
permut = 1
'interchange les valeurs entre les deux éléments en se servant d'une
'variable temporaire
tmp = t(i)
t(i) = t(i + 1)
t(i + 1) = tmp
End If
Next i
Wend
'inscrit le résultat en ligne 2
For i = 1 To 10
Feuil1.Cells(2, i) = t(i)
Next i
End Subc
Bonsoir,
Cet algorithme de tri est le plus lent qui puisse exister (tri à bulles). Le temps de tri est proportionnel à NxN
Il est préférable d'utiliser l'algorithme Quick-Sort (le + rapide)
http://boisgontierjacques.free.fr/pages_site/tableaux.htm#Tri
Ceuzin
