Algorithme de Tri pour Tableau multidimenssion
Bonjour,
Je cherche à trier un tableau multidimensionnel par rapport à une colonne.
Le problème c'est que mon tableau est tres grand et du coup le temps d'execusion de mon code ci dessous est bloquant ( plus de 4h) je precise que mon tableau est dynamique avec une taille de minimum ( 365000,13) c'est la premiere dimension qui varie.
D'où ma demande : Est ce que quelqu un pour ne filer un code pour faire le tri plus rapide que le mien.
Voici mon code qui marche tres bien en cas de peu de données
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| Sub TriInsertionStrings(TableauATrier() As Variant, ByVal ColonneTri As Long, _
ByVal lDebutTableau As Long, _
ByVal lFinTableau As Long)
Dim sValeur() As Variant
Dim lCount1 As Long
Dim lCount2 As Long
Dim lCptCol As Long
ReDim sValeur(UBound(TableauATrier, 2))
'Parcours les éléments
For lCount1 = lDebutTableau + 1 To lFinTableau
For lCptCol = 0 To UBound(TableauATrier, 2)
sValeur(lCptCol) = TableauATrier(lCount1, lCptCol)
Next lCptCol
'Trouve la place pour mettre l'élément
For lCount2 = lCount1 - 1 To lDebutTableau Step -1
If TableauATrier(lCount2, ColonneTri) < sValeur(ColonneTri) Then
Exit For
End If
For lCptCol = 0 To UBound(TableauATrier, 2)
TableauATrier(lCount2 + 1, lCptCol) = TableauATrier(lCount2, lCptCol)
Next lCptCol
Next lCount2
' Insert it
For lCptCol = 0 To UBound(TableauATrier, 2)
TableauATrier(lCount2 + 1, lCptCol) = sValeur(lCptCol)
Next lCptCol
Next
End Sub |
Merci pour votre aide