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

Signaler
Messages postés
232
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
27 octobre 2007
-
manroww
Messages postés
1
Date d'inscription
jeudi 5 mai 2011
Statut
Membre
Dernière intervention
5 mai 2011
-
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

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

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

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 @+