Algorithme de Heap en VBA
Talkme
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
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
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour, 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