TRI ALPHABETIQUE RAPIDE POUR LISTE LIEE - RADIXSORT LINKLIST
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
18 mars 2009 à 22:07
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
24 mars 2009 à 09:13
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
CGSI3
Messages postés416Date d'inscriptionvendredi 22 février 2008StatutMembreDernière intervention 7 janvier 20181 24 mars 2009 à 00:12
Salut a tous, je reste perplexe vis a vis de la parution de ce code de cette manière sur le site et j'avoue m'en réjouir, ayant posté une source sur le même sujet il y a 3 mois, et ayant été litéralement éffacé 2 jours plus tard malgré le nb de réponse, car le sacro saint QuickSort était imbattable selon ...
Quoi qu'il en soit je vous félicite pour ce code, et je vous envoi un fichier Excel qui permet de le comparer à quicksort, trifusion et ma procedure de tri que je nomme "Tri par vague"
Amicalement
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 20 mars 2009 à 08:14
rapide.
lisant la description, je pensai à des pointeurs de chaine et non l'indice dans le tableau ^^
barjea17
Messages postés3Date d'inscriptionlundi 25 décembre 2000StatutMembreDernière intervention19 mars 2009 19 mars 2009 à 20:01
Merci c'est un détail qui m'avait échappé.
Effectivement " Utilisez une locution As type distincte pour chaque variable que vous déclarez."
guillaume_00
Messages postés18Date d'inscriptiondimanche 19 septembre 2004StatutMembreDernière intervention19 mars 2009 19 mars 2009 à 19:46
Ce que veux dire Renfield c'est que si tu déclare I, J et k de cette manière :
Dim I, J, k as Long
seul k est de type Long (I et J sont de type Variant)
Si tu veux déclarer les trois variables en tant que Long il faut écrire :
Dim I as Long, J as Long, k as Long
++
barjea17
Messages postés3Date d'inscriptionlundi 25 décembre 2000StatutMembreDernière intervention19 mars 2009 19 mars 2009 à 19:18
Guillaume_00 comment interprètes-tu la remarque de Renfield ?
J'utilise des variables de type long 64 bits pour ne pas limiter le nombre de mots à 2^16. Je peux évidemment déclarer I, J, K en public as long mais ce n'est pas "propre" ni esthétique.
Sais-tu comment uploader un fichier Zip? J'ai systématiquement un message d'erreur et pas de réponse du Web master.
Une astuce pour éviter d'avoir Tmp_Ptr() pour swaper mes pointeurs dans Sub Radix(ByVal Rank, ByVal L_bound, ByVal Cnt) ???
guillaume_00
Messages postés18Date d'inscriptiondimanche 19 septembre 2004StatutMembreDernière intervention19 mars 2009 19 mars 2009 à 10:00
Si tu veux diminuer l'usage des variants utilise des variables de type Long ou si tu veux plus large utilise des variable de type Currency.
Pour rappel (en VBA/VB6) :
Integer = entier signé 16 bits [-32767; 32767]
Long = entier signé 32 bits [-2147483647; 2147483647]
Currency = entier scalaire 64 bits [–922337203685477,5808; 922337203685477,5807]
Double = flottant IEEE 754 (bon pas trop d'interet dans ton cas)
++
barjea17
Messages postés3Date d'inscriptionlundi 25 décembre 2000StatutMembreDernière intervention19 mars 2009 18 mars 2009 à 22:31
Une suggestion pour diminuer les variants sans limiter le nombre de mots à 2^16 ?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 18 mars 2009 à 22:07
ca parait prometteur
trop de Variant dans ton code...
Sub Radix(ByVal Rank, ByVal L_bound, ByVal Cnt)
Dim I, J, k As Long
24 mars 2009 à 09:13
http://www.vbfrance.com/code.aspx?ID=48709
j'ai pas grand chose a en dire
24 mars 2009 à 00:12
Quoi qu'il en soit je vous félicite pour ce code, et je vous envoi un fichier Excel qui permet de le comparer à quicksort, trifusion et ma procedure de tri que je nomme "Tri par vague"
Amicalement
20 mars 2009 à 08:14
lisant la description, je pensai à des pointeurs de chaine et non l'indice dans le tableau ^^
19 mars 2009 à 20:01
Effectivement " Utilisez une locution As type distincte pour chaque variable que vous déclarez."
19 mars 2009 à 19:46
Dim I, J, k as Long
seul k est de type Long (I et J sont de type Variant)
Si tu veux déclarer les trois variables en tant que Long il faut écrire :
Dim I as Long, J as Long, k as Long
++
19 mars 2009 à 19:18
J'utilise des variables de type long 64 bits pour ne pas limiter le nombre de mots à 2^16. Je peux évidemment déclarer I, J, K en public as long mais ce n'est pas "propre" ni esthétique.
Sais-tu comment uploader un fichier Zip? J'ai systématiquement un message d'erreur et pas de réponse du Web master.
Une astuce pour éviter d'avoir Tmp_Ptr() pour swaper mes pointeurs dans Sub Radix(ByVal Rank, ByVal L_bound, ByVal Cnt) ???
19 mars 2009 à 10:00
Pour rappel (en VBA/VB6) :
Integer = entier signé 16 bits [-32767; 32767]
Long = entier signé 32 bits [-2147483647; 2147483647]
Currency = entier scalaire 64 bits [–922337203685477,5808; 922337203685477,5807]
Double = flottant IEEE 754 (bon pas trop d'interet dans ton cas)
++
18 mars 2009 à 22:31
18 mars 2009 à 22:07
trop de Variant dans ton code...
Sub Radix(ByVal Rank, ByVal L_bound, ByVal Cnt)
Dim I, J, k As Long
ici, I, J sont des variant