Problème avec le tri rapide (qshort)

kababou Messages postés 2 Date d'inscription vendredi 24 novembre 2006 Statut Membre Dernière intervention 25 novembre 2006 - 25 nov. 2006 à 17:20
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 25 nov. 2006 à 18:40
Bonjour j'ai un problème avec mes ligne de code pour mon programme de tri rapide mais je n'arrive pas à voir à quel niveau. Si quelqu'un pouvais m'aider ça serais vraiment gentil. Je cherche depuis un bon moment mais je trouve d'où viens le problème. Le problème est que mon programme ne tri les données, il me les affiche dans le désordre comme au début.

Voici le code VB:

Public t(5) As Long
Public p As Long
Public nb As Long
Public g As Long
Public d As Long

Sub remplissage()
t(0) = 56
t(1) = 34
t(2) = 2
t(3) = 3453
t(4) = 231
nb = 5
End Sub

Sub trirapide(t() As Long, g As Long, d As Long)
Dim p As Long
If d > g Then
    p = partition(t, g, d)
    trirapide t(), g, p - 1
    trirapide t(), p + 1, d
End If
End Sub

Function partition(t() As Long, g As Long, d As Long) As Long
Dim i As Long
Dim s As Boolean
Dim j As Long
Dim p As Long
Dim tmp As Long
p = t(d)
i = g + 1
j = d
While s = False
    While t(i) < p
        i = i + 1
    Wend
    While t(j) > p
        j = j - 1
    Wend
    If i >= j Then
        s = True
    End If
    tmp = t(i)
    t(i) = t(j)
    t(j) = tmp
Wend
tmp = t(i)
t(i) = t(d)
t(d) = tmp
partition = i
End Function

Merci d'avance.

7 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
25 nov. 2006 à 17:42
salut

Sub Tri(ByRef Liste() As String)
    Dim First As Long, Last As Long
    Dim i As Long, j As Long
    Dim Temp As String

For i = LBound(Liste) To UBound(Liste) - 1
    For j = i + 1 To UBound(Liste)
        If Liste(i) > Liste(j) Then
            Temp = Liste(j)
            Liste(j) = Liste(i)
            Liste(i) = Temp
        End If
    Next j
Next i
End Sub

~
Mortalino ~

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
25 nov. 2006 à 18:18
mortalino : ton code n'a rien à voir avec le quicksort !
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
25 nov. 2006 à 18:22
Possible, je sais même pas ce que c-est.
J-ai vu Tri, beh j-ai fait une sub tri. Mais si ça correspond pas à ses besoins, désolé.

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
kababou Messages postés 2 Date d'inscription vendredi 24 novembre 2006 Statut Membre Dernière intervention 25 novembre 2006
25 nov. 2006 à 18:24
Merci pour ta réponse mais en faite, je suis seulement intéresser par le tri rapide. Donc si tu as une idée où est serais mon erreur dans mon programme ça serais bien.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 25
25 nov. 2006 à 18:36
Salut,

Des Quicksort, c'est pas ce qui manque sur le site. Avec une petite recherche d'au moins 30 secondes :

Tous les tris, y compris Quicksort ici
Un autre quicksort ici

Manu
--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
25 nov. 2006 à 18:39
Saludos, Amigo,

Espero que hablas el Español (o que por lo menos lo entiendes bastante bien) porque el primer vincilo al cual el amigo Google me ha traido es el siguiente :
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/107-quicksort.htm

Bon...
Si tu as vraiment des difficultés à traduire les commentaires de ce source, tu dis... (je ferai)
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
25 nov. 2006 à 18:40
Zut alors...
Je n'avais pas réussi à le trouver.
Mille excuses.
0
Rejoignez-nous