TRI D'UN TABLEAU DE VALEUR DANS L'ORDRE CROISSANT

cs_psycho Messages postés 232 Date d'inscription samedi 11 mai 2002 Statut Membre Dernière intervention 27 octobre 2007 - 9 janv. 2004 à 15:18
manroww Messages postés 1 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 5 mai 2011 - 5 mai 2011 à 15:33
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/15187-tri-d-un-tableau-de-valeur-dans-l-ordre-croissant

manroww Messages postés 1 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 5 mai 2011
5 mai 2011 à 15:33
Bonjour,

Si J'ai bien compris ta volonte de Benbax, tu voulais presenter a la fois la possibilite de tri croissant, et celle pour un tri decroissant ?
J'ai ecrit le code en consequence, inspire du tiens.
Il suffit de uncomment le tri decroissant, et comment le tri croissant pour inverser l'ordre :-)

Sub tri()

Dim i As Byte
Dim j As Byte

Dim tmp As Byte
Dim tmpMin As Byte
Dim tmpMax As Byte

Dim tableau(10) As Byte

Dim invert As Boolean


' ***** POUR L'EXEMPLE **************************************
'Considérons que le tableau est plein de valeurs aléatoires....

tableau(1) = 5
tableau(2) = 3
tableau(3) = 46
tableau(4) = 7
tableau(5) = 2
' **************************************************************



Do

invert = False

For i = 1 To 4


' ******** Ordre CROISSANT ***********
If tableau(i) > tableau(i + 1) Then

tmpMax = tableau(i)
tableau(i) = tableau(i + 1)
tableau(i + 1) = tmpMax
invert = True

End If
' *************************************



'' ******** Ordre DECROISSANT *********
'
' If tableau(i) < tableau(i + 1) Then
'
' tmpMin = tableau(i + 1)
' tableau(i + 1) = tableau(i)
' tableau(i) = tmpMin
' invert = True
'
' End If
'
'' *************************************

Next i

Loop While invert



'***** POUR L'EXEMPLE *********

For i = 1 To 5

Debug.Print tableau(i)

Next i

'*******************************


End Sub
cs_benbax Messages postés 9 Date d'inscription lundi 12 mai 2003 Statut Membre Dernière intervention 14 décembre 2004
24 févr. 2004 à 23:11
C'est bien vu =)

Désolé, pour les eventuels problèmes posé...
Je n'ai pas le temps de modifer, alors remerciement a psycho =)
cs_psycho Messages postés 232 Date d'inscription samedi 11 mai 2002 Statut Membre Dernière intervention 27 octobre 2007
9 janv. 2004 à 15:18
salut, je pense pas que tu puisses trier ton tableau avec cet algo. Je crois qu il manque une ligne en fait : tu fais
tmpmax=tableau(i)
tableau(i)=tableau(i+1)
mais tu ne fais pas tableau(i+1)=tmpmax
donc, le tri n est pas fais, tu affectes juste le maximum a tous les éléments du tableau

dis moi si je me trompe.
allez @+
Rejoignez-nous