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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionFunction BuildTree(ByVal Levels As Byte, Optional ByVal Start As String = vbNullString) As String Static Buffer As String Static TmpBuffer As String Dim i As Byte, a As String * 1 For i = 65 To 90 a = Chr$(i) TmpBuffer = TmpBuffer & Start & a & vbCrLf If Levels > 0 Then BuildTree Levels - 1, Start & a ElseIf i = 90 Then Buffer = Buffer & TmpBuffer TmpBuffer = vbNullString End If Next i BuildTree = Buffer End Function Private Sub Form_Load() Text1.Text = BuildTree(2) End Sub
Dim i As Byte, j As Byte, k As Byte Dim a As String, b As String Dim Buffer As String, TmpBuffer As String For i = 65 To 90 a = Chr$(i) TmpBuffer = TmpBuffer & a & vbCrLf For j = 65 To 90 b = a & Chr$(j) TmpBuffer = TmpBuffer & b & vbCrLf For k = 65 To 90 TmpBuffer = TmpBuffer & b & Chr$(k) & vbCrLf Next k Next j Buffer = Buffer & TmpBuffer TmpBuffer = vbNullString DoEvents Next i Text1.Text = Buffer
Dim Start as Long Start = Timer '# CODE DONT LE TEMPS EST A TESTER MsgBox "Temps : " & ( timer - start ) & "s"