COMPARATIF DE METHODES DE TRIS (BULLE, SHELL, SHELL METZNER, A INSERTION....

cs_Arknoth Messages postés 96 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 22 août 2004 - 8 janv. 2003 à 08:53
cs_bigane Messages postés 46 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 12 février 2004 - 13 janv. 2003 à 19:45
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/5604-comparatif-de-methodes-de-tris-bulle-shell-shell-metzner-a-insertion

cs_bigane Messages postés 46 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 12 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és 46 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 12 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és 3 Date d'inscription jeudi 26 décembre 2002 Statut Membre Derniè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és 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
9 janv. 2003 à 19:15
ca tombe je v poser une kestion idiote... mais ca sert a koi???
philmc99 Messages postés 3 Date d'inscription jeudi 26 décembre 2002 Statut Membre Derniè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és 96 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 22 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 ;-)
Rejoignez-nous