kababou
Messages postés2Date d'inscriptionvendredi 24 novembre 2006StatutMembreDernière intervention25 novembre 2006
-
25 nov. 2006 à 17:20
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 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
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 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"
<!--
kababou
Messages postés2Date d'inscriptionvendredi 24 novembre 2006StatutMembreDernière intervention25 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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Manu --------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.