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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 194 fois - Téléchargée 38 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

VicoLaChips2
Messages postés
439
Date d'inscription
dimanche 20 janvier 2002
Statut
Membre
Dernière intervention
2 février 2010
1 -
Bonjour -;)

' MonTableau=Tableau de String
call QuickSort monTableau???
t'es sur ? sur mon ordi ça marche pa...
cs_Ouneufe
Messages postés
60
Date d'inscription
mardi 4 septembre 2001
Statut
Membre
Dernière intervention
19 janvier 2009
-
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
pasmago
Messages postés
5
Date d'inscription
vendredi 26 septembre 2003
Statut
Membre
Dernière intervention
3 avril 2006
-
Merci pour cette source, exactement ce que je cherchais pour mon appli. Merci d'avoir éditer ce code sur le site.

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.