cs_bigane
Messages postés46Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention12 février 2004 13 janv. 2003 à 19:45
Attention, l'anti-slash d'une ligne dans le code précédent à disparu !!!
Lire
Partitions = Partitions "anti-slash" 2
l'anti-slash permet une division entrière d'un entier, c'est plus rapide que la division normale.
A+
bigane
cs_bigane
Messages postés46Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention12 février 2004 13 janv. 2003 à 19:39
Salut Lord.
C'est une approche et cela représente bien les différences.
Mais le code est loin d'être optimisé.
J'ai trouvé une description du Shell Mezner sur un autre site :
http://www.devparadise.com/technoweb/code/vb/A121.asp Là encore, c'est loin d'être optimisé, mais on s'approche.
Quelque chose de plus optimisé, pour un tri d'un tableau de long serait :
Sub Tri_Shell_Metzner(ByVal nbreelemtab As Long)
Dim Partitions As Long, j As Long, i As Long
'On considère que l'on trie des long
Dim temp As Long
Partitions = nbreelemtab
While Partitions ' >= 1
Partitions = Partitions 2
For j = 1 To nbreelemtab - Partitions
i = j
Do While i >= 1
temp = Atrier(i)
If temp > Atrier(i + Partitions) Then
Atrier(i) = Atrier(i + Partitions)
Atrier(i + Partitions) = temp
i = i - Partitions
Else
Exit Do
End If
Loop
Next ' j
ProgressBar1.Value = ProgressBar1.Value + Partitions
Wend
LitTableau
End Sub
philmc99
Messages postés3Date d'inscriptionjeudi 26 décembre 2002StatutMembreDernière intervention 9 janvier 2003 9 janv. 2003 à 20:58
Salut Lord, ca sert a trier !, ce prg n'est pas utile, il fournit juste les algos/boucles des differentes methodes de tri de donnees d'un tableau, le prog n'a pour seul interet que de montrer l'importance de la methode de tri en fonction de la dim(tableau), c tout! et le progress bar nous montre qu'un tri a bulle n'est pas si nul que ca sur un petit nbre d'elem et evite de se taper du code.
je vais ajouter un autre methode, un shell metzner modifie par un prof de math dont la source m'a ete fourni par Rene38 , merci a lui!
encore plus rapide...
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 9 janv. 2003 à 19:15
ca tombe je v poser une kestion idiote... mais ca sert a koi???
philmc99
Messages postés3Date d'inscriptionjeudi 26 décembre 2002StatutMembreDernière intervention 9 janvier 2003 8 janv. 2003 à 20:03
hey, Arknock.. C'est rectifie(re: le Path),zip a jour (je crois..) pour le progress bar, ben en utilisant le frm, tu n'as pas le Comctl32.ocx, avec lequel, forcement... ca marche.
try again, and tell me
Salut. wink**
cs_Arknoth
Messages postés96Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention22 août 2004 8 janv. 2003 à 08:53
Ouhlala, bonne initiative, mais dsl pour les bugs, c la foire. T'as une méthode pour gérer les bugs ??
Bravo pour le contrôle ActiveX ProgressBar qui n'en est pas un (PictureBox, joli, forcément ca marche pas).
Autre chose, le VBP est bloqué sur ton répertoire de création, donc il faut utiliser le FRM... arf, ca partait d'un bon sentiment ;-)
13 janv. 2003 à 19:45
Lire
Partitions = Partitions "anti-slash" 2
l'anti-slash permet une division entrière d'un entier, c'est plus rapide que la division normale.
A+
bigane
13 janv. 2003 à 19:39
C'est une approche et cela représente bien les différences.
Mais le code est loin d'être optimisé.
J'ai trouvé une description du Shell Mezner sur un autre site :
http://www.devparadise.com/technoweb/code/vb/A121.asp
Là encore, c'est loin d'être optimisé, mais on s'approche.
Quelque chose de plus optimisé, pour un tri d'un tableau de long serait :
Sub Tri_Shell_Metzner(ByVal nbreelemtab As Long)
Dim Partitions As Long, j As Long, i As Long
'On considère que l'on trie des long
Dim temp As Long
Partitions = nbreelemtab
While Partitions ' >= 1
Partitions = Partitions 2
For j = 1 To nbreelemtab - Partitions
i = j
Do While i >= 1
temp = Atrier(i)
If temp > Atrier(i + Partitions) Then
Atrier(i) = Atrier(i + Partitions)
Atrier(i + Partitions) = temp
i = i - Partitions
Else
Exit Do
End If
Loop
Next ' j
ProgressBar1.Value = ProgressBar1.Value + Partitions
Wend
LitTableau
End Sub
9 janv. 2003 à 20:58
je vais ajouter un autre methode, un shell metzner modifie par un prof de math dont la source m'a ete fourni par Rene38 , merci a lui!
encore plus rapide...
9 janv. 2003 à 19:15
8 janv. 2003 à 20:03
try again, and tell me
Salut. wink**
8 janv. 2003 à 08:53
Bravo pour le contrôle ActiveX ProgressBar qui n'en est pas un (PictureBox, joli, forcément ca marche pas).
Autre chose, le VBP est bloqué sur ton répertoire de création, donc il faut utiliser le FRM... arf, ca partait d'un bon sentiment ;-)