Tri rapide (quicksort) d'un tableau de chaînes de caractères

0/5 (3 avis)

Snippet vu 9 396 fois - Téléchargée 40 fois

Contenu du snippet

Cette source n'est pas de moi (http://www.vb-helper.com/), je me suis contenté de l'adapter à des chaînes de caractère.
ça peut être utile...

ex d'utilisation :

' MonTableau=Tableau de String
dim monTableau(10) as string
call QuickSort monTableau ,0,ubound(monTableau)

Source / Exemple :


Public Sub Quicksort(list() As String, ByVal min As Long, _
    ByVal max As Long)
Dim med_value As String
Dim hi As Long
Dim lo As Long
Dim i As Long

    ' If min >= max, the list contains 0 or 1 items so it
    ' is sorted.
    If min >= max Then Exit Sub

    ' Pick the dividing value.
    i = Int((max - min + 1) * Rnd + min)
    med_value = list(i)

    ' Swap it to the front.
    list(i) = list(min)

    lo = min
    hi = max
    Do
        ' Look down from hi for a value < med_value.
        Do While list(hi) >= med_value
            hi = hi - 1
            If hi <= lo Then Exit Do
        Loop
        If hi <= lo Then
            list(lo) = med_value
            Exit Do
        End If

        ' Swap the lo and hi values.
        list(lo) = list(hi)
        
        ' Look up from lo for a value >= med_value.
        lo = lo + 1
        Do While list(lo) < med_value
            lo = lo + 1
            If lo >= hi Then Exit Do
        Loop
        If lo >= hi Then
            lo = hi
            list(hi) = med_value
            Exit Do
        End If
        
        ' Swap the lo and hi values.
        list(hi) = list(lo)
    Loop
    
    ' Sort the two sublists.
    Quicksort list(), min, lo - 1
    Quicksort list(), lo + 1, max
End Sub

A voir également

Ajouter un commentaire Commentaires
pasmago Messages postés 5 Date d'inscription vendredi 26 septembre 2003 Statut Membre Dernière intervention 3 avril 2006
22 mars 2005 à 11:05
Merci pour cette source, exactement ce que je cherchais pour mon appli. Merci d'avoir éditer ce code sur le site.
cs_Ouneufe Messages postés 60 Date d'inscription mardi 4 septembre 2001 Statut Membre Dernière intervention 19 janvier 2009
14 janv. 2003 à 10:41
Arf, bien vu VicoLaChips, il était tard quand j'ai mis le source, voici pour correction (0 est la limit inférieure du tableau à trier)

call quickSort(Montableau,0,ubound(Tableau))

Bon, l
VicoLaChips2 Messages postés 436 Date d'inscription dimanche 20 janvier 2002 Statut Membre Dernière intervention 2 février 2010 2
14 janv. 2003 à 04:23
Bonjour -;)

' MonTableau=Tableau de String
call QuickSort monTableau???
t'es sur ? sur mon ordi ça marche pa...

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.