Algorithme de tri (le tri à bulle)

Contenu du snippet

ceci est un exemple de tri de tableaux par permutations. On dis quand on est poli le tri à bulle !!

Source / Exemple :


Option Explicit
'algorithme de tri a bulle
'Le tri à bulle est une méthode de tri qui consiste à
'comparer successivement tous les éléments adjacents
'd'un tableau et à les échanger si le premier élément
'est supérieur au second.
'On recommence cette opération tant que tous
'les éléments ne sont pas triés.
'-------------------------------Ce texte explicatif n'est pas de moi
'CF ---> http://www-ipst.u-strasbg.fr/ipst/deug-ti/aide-c/tris/tribulle.htm#bulle
'----------------------------------------------------
'LE code est de moi...
'----------------------------------------------------

Private Sub Form_Load()
    Dim tableau(9) As Variant
    tableau(0) = 9
    tableau(1) = 5
    tableau(2) = 1
    tableau(3) = 6
    tableau(4) = 2
    tableau(5) = 3
    tableau(6) = 4
    tableau(7) = 10
    tableau(8) = 7
    tableau(9) = 8
    '--------------------------
    Dim i, intTmp, x As Integer
    For i = 0 To UBound(tableau)
        Text1(0).Text = Text1(0).Text & tableau(i) & vbCrLf
    Next i
    Dim TriFini, PasFini As Boolean
    TriFini = False
    '--------------------
    Do While TriFini = False 'faire tant que le tri n'est pas fini
        For i = 0 To UBound(tableau) - 1
            If tableau(i) > tableau(i + 1) Then
                '------------------permutation
                intTmp = tableau(i)
                tableau(i) = tableau(i + 1)
                tableau(i + 1) = intTmp
                '------------------
                PasFini = True
                'si on ne repasse plus ici
                'PasFini sera = à False (cf plus bas)
            End If
        Next i
        If PasFini = False Then
            TriFini = True
            Exit Do '-------------------------fin ici
        Else
            'indice des champs textes
            x = x + 1
            For i = 0 To UBound(tableau)
                Text1(x).Text = Text1(x).Text & tableau(i) & vbCrLf
            Next i
        End If
        'On réinitialise la valeur PasFini
        PasFini = False
    Loop
End Sub

Conclusion :


à venir les autres méthodes (plus compliqué !!:)

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.