Algorithme de Heap en VBA
Bonjour,
J'aimerais effectué l'algorithme de Heap dans VBA,
Voici le code que j'ai fais. Le problème est que lorsque je le lance, il n'effectue pas les n factorielles permutations et en plus de cela, il effectue les permutations dans une seule cellule du range
Merci pour votre aide
J'aimerais effectué l'algorithme de Heap dans VBA,
Voici le code que j'ai fais. Le problème est que lorsque je le lance, il n'effectue pas les n factorielles permutations et en plus de cela, il effectue les permutations dans une seule cellule du range
Public [/contents/446-fichier-sub Sub] AlgoHeap()
Dim n As Integer
n = 6
Dim i As Integer
For i = 1 To n
Range("Heap").Cells(i, 2) = Range("Affectations").Cells(i, 2)
Next i
i = 1
While i < n
If Range("Heap").Cells(2, i) < i Then
If i Mod 2 = 0 Then
Call Swap(Range("A").Cells(1, 1), Range("A").Cells(i, 1))
Else
Call Swap(Range("A").Cells(Range("Heap").Cells(i, 2), 1), Range("A").Cells(i, 1))
End If
Range("Heap").Cells(i, 2) = Range("Heap").Cells(i, 2) + 1
i = 1
Else
Range("Heap").Cells(i, 2) = Range("Affectations").Cells(i, 2)
i = i + 1
End If
Wend
End Sub
Public Function Swap(d As Integer, b As Integer)
Dim temp As Integer
temp = d
d = b
b = temp
End Function
Merci pour votre aide
Configuration: Windows / Chrome 72.0.3626.109
1 réponse
-
Contributeurbonjour, quelle technique as-tu utilisé pour vérifier que ton code se comporte comme tu t'y attends?
il me semble que ta fonction swap ne fait rien d'utile. je pense que tu devrais y travailler avec des range, pas avec des integer.
exemple non testé:private Function Swap(d As range, b As range) Dim temp As Integer temp = d d = b b = temp End Function