Avez-vous une question? (216) 97 656 803 hajjriadh@gmail.com
VB.Net

VB.Net: Trier des tableaux et des matrices

Un cours complet pour maîtriser VB.Net: Trier des tableaux et des matrices.

0 chapitres 0 QCM Accès gratuit

1. Trier un tableau à une dimension (Array.Sort)

La classe Array fournit une méthode statique Sort() extrêmement efficace pour trier les éléments d'un tableau unidimensionnel. Par défaut, le tri se fait par ordre croissant (alphabétique ou numérique).

Exemple de tri :
Module Module1
    Sub Main()
        Dim gouter() As String = {"pain", "beurre", "moutarde"}

        ' Tri du tableau par ordre alphabétique
        Array. Sort(gouter)

        For Each x In gouter
            Console.WriteLine(x)
        Next
        Console.ReadKey()
    End Sub
End Module
Résultat d'exécution :
beurre
moutarde
pain
Astuce : Pour inverser l'ordre (tri décroissant), utilisez d'abord Array.Sort() puis la méthode Array.Reverse()!

2. Trier une matrice (Tableau à 2 dimensions)

Contrairement aux tableaux 1D, il n'existe pas de fonction native directe pour trier une matrice 2D en VB.Net (car il faudrait décider si on trie par ligne ou par colonne). L'astuce consiste à convertir la matrice en tableau de tableaux (Jagged Array) ou à écrire une fonction de tri personnalisée.

' Tri personnalisé basé sur le tri à bulles (Bubble Sort)
Sub Trier2DArray(ByRef myTable(,) As String, ByVal triColumn As Integer)
    Dim i, j As Integer
    Dim swap As Boolean
    Dim temp As String
    Dim uBound0 As Integer = myTable.GetUpperBound(0)
    Dim uBound1 As Integer = myTable.GetUpperBound(1)

    Do
        swap = False
        For i = 0 To uBound0 - 1
            ' Comparaison alphabétique de la colonne spécifiée
            If String. Compare(myTable(i, triColumn), myTable(i + 1, triColumn)) > 0 Then
                For j = 0 To uBound1
                    temp = myTable(i, j)
                    myTable(i, j) = myTable(i + 1, j)
                    myTable(i + 1, j) = temp
                Next
                swap = True
            End If
        Next
    Loop While swap
End Sub

Cette fonction permute les lignes complètes de la matrice en se basant sur le tri d'une colonne spécifique (triColumn).