Tri a bulle sur des valeurs numériques

Description

Un petit code tout bête qui montre comment effectuer un tri a bulle sur une variable indicé contenant des valeurs numériques...

Source / Exemple :


'Déclaration des variables
Dim bpermute As Boolean
Dim cprovisoire As String
Dim cfiche(1 To 10) As Integer

'Mise en vars temporaires
imax = 10                   '-->Nombre de fiches
cfiche(1) = 7
cfiche(2) = 4
cfiche(3) = 5
cfiche(4) = 2               '-->Valeurs de la variable indicée
cfiche(5) = 7
cfiche(6) = 9
cfiche(7) = 3
cfiche(8) = 1
cfiche(9) = 10
cfiche(10) = 6

bpermute = True                             'Il faut au moins parcourir une fois
Do While bpermute = True                    'On tourne tant que l'on bouge des valeurs
    bpermute = False                        'Si on est ici c qu'il faut réinitialiser bpermute
    For t = 1 To imax - 1                   'On tourne autant de fois qu'il y a de fiches(-1 vu qu'on compare 2 valeurs)
    If cfiche(t) > cfiche(t + 1) Then       'Si on a trouvé deux valeurs mal rangées (autrement dit une valeur qui se trouve plus bas dans le tableau mais qui est plus élevée...
            cprovisoire = cfiche(t)         'On inverse les deux chaines
            cfiche(t) = cfiche(t + 1)       'bis
            cfiche(t + 1) = cprovisoire     'bis
            bpermute = True
        End If
    Next t
Loop

'Affichage du résultat classé
For i = 1 To 10
    List1.AddItem cfiche(i)
Next i

Conclusion :


thx a mon père ;-)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.