Tri à bulle sans prétention

Contenu du snippet

ce bout de code m'a servi à classer par ordre alphabétique le contenu d'un tableau, le classement s'effectuant sur les deux premières lettre du contenu de la (i,2).
Ex : le passant après la ds le tableau final.
je lis la ligne, la compare à la suivante, si la comparaison révèle qu'elle doit être classée après alphabetiquement, alors je remplace la ligne par celle-ci. et ainsi de suite...
je me sers du code ascii, des lettres pour comparer, le A ayant un code ascii inférieur au B ds la table ascii.
le tableau possède 'compt' lignes et 8 colonnes.
la variable ordre stocke la colonne du tableau sur laquelle va s'effectuer le tri
Ex : (i,1) --> l'identifiant
(i,2) --> le titre
(i,3)--> le nom

Source / Exemple :


Public Function lance_tri(ordre)

Dim vala, valb, valc, vald
dim i, j, k
dim tempv()
redim tempv(1,8)

 For i = 1 To compt
  For k = i To compt
   If Asc(Left(table_bd(i, ordre), 1)) > Asc(Left(table_bd(k, ordre), 1)) Then
    For j = 1 To 8
     tempv(1, j) = table_bd(i, j)
    Next
    For j = 1 To 8
     table_bd(i, j) = table_bd(k, j)
    Next
    For j = 1 To 8
     table_bd(k, j) = tempv(1, j)
    Next
   ElseIf Asc(Left(table_bd(i, ordre), 1)) = Asc(Left(table_bd(k, ordre), 1)) And Asc(Mid(table_bd(i, ordre), 2, 1)) > Asc(Mid(table_bd(k, ordre), 2, 1)) Then
    For j = 1 To 8
     tempv(1, j) = table_bd(i, j)
    Next
    For j = 1 To 8
     table_bd(i, j) = table_bd(k, j)
    Next
    For j = 1 To 8
     table_bd(k, j) = tempv(1, j)
    Next
   End If
  Next
 Next

end function

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.