begin process at 2012 02 12 15:57:17
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Texte

 > TRI RAPIDE (QUICKSORT) D'UN TABLEAU DE CHAÎNES DE CARACTÈRES

TRI RAPIDE (QUICKSORT) D'UN TABLEAU DE CHAÎNES DE CARACTÈRES


 Information sur la source

Note :
Aucune note
Catégorie :Texte Niveau :Initié Date de création :13/01/2003 Date de mise à jour :15/01/2003 01:19:34 Vu :5 096

Auteur : Ouneufe

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

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

  • 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
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
 



 Sources du même auteur

Source avec Zip Source avec une capture OCX ET SA SOURCE POUR OBTENIR UNE PICTUREBOX SKINABLE
Source avec Zip Source avec une capture APPLI RIGOLOTE POUR EXEMPLE DE DÉSACTIVATION DE CONTROL/ALT/...
Source avec Zip BARRE DE PROGRESSION SOFT ET AVEC CHANGEMENT DE COULEUR DU T...

 Sources de la même categorie

Source avec Zip Source avec une capture MASQUE DE SAISIE NUMÉRIQUE par acive
Source avec Zip Source .NET (Dotnet) COMPTEUR DE NOMBRE DE MOTS DANS UN TEXTE par alpha5
Source avec Zip Source avec une capture HM - BLOCNOTE par hassenmajor
Source .NET (Dotnet) [VB.NET] CLASS DE COLORATION SYNTAXIQUE "ON THE FLY" par huzima
Source avec Zip Source avec une capture PERSONNALISEZ VOS BOÎTES DE MESSAGE (X)HTML par medjahedScript

Commentaires et avis

Commentaire de VicoLaChips2 le 14/01/2003 04:23:02

Bonjour -;)

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

Commentaire de Ouneufe le 14/01/2003 10:41:18

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

Commentaire de pasmago le 22/03/2005 11:05:50

Merci pour cette source, exactement ce que je cherchais pour mon appli. Merci d'avoir éditer ce code sur le site.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,512 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales