5/5 (2 avis)
Snippet vu 12 632 fois - Téléchargée 63 fois
Public Sub TriParSelection(tabLong() As Long) Dim lgFor As Long Dim lgMem As Long, lgTiers As Long Dim lgTmp As Long lgTiers = LBound(tabLong) Do lgTiers = 3 * lgTiers + 1 Loop Until lgTiers > UBound(tabLong) Do lgTiers = lgTiers / 3 For lgFor = lgTiers + LBound(tabLong) To UBound(tabLong) ' Enregistrement de la valeur de l'élément "courant" lgTmp = tabLong(lgFor) lgMem = lgFor Do While tabLong(lgMem - lgTiers) > lgTmp ' Ecrase la valeur de l'élément "courant" (ou de comparaison, à partir du second tour) tabLong(lgMem) = tabLong(lgMem - lgTiers) ' Recherche la position d'un nouvel élément de "comparaison" lgMem = lgMem - lgTiers ' Evite de sortir des limites du tableau If lgMem < lgTiers Then Exit Do Loop ' Enregistre la valeur de l'élément courant à la place de ' l'élément de comparaison si l'échange a effectivement eu lieu. ' Sinon, cela n'a aucun effet, enregistrement de l'élément courant ' sur lui-même tabLong(lgMem) = lgTmp Next lgFor Loop Until lgTiers = LBound(tabLong) End Sub
15 nov. 2003 à 14:42
n0,n1,........n19 sont des entiers
a n0
b n1
c n2
d n3
e n4
.
.
.
. n19
comment ordonner selon n0......n19 rapidement?
26 mai 2001 à 18:34
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.