Trier un tableau mais en récupérant les index

Résolu
cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 - 22 sept. 2016 à 17:07
Whismeril Messages postés 19146 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 4 octobre 2024 - 22 sept. 2016 à 18:32
Bonjour,
Je cherche une méthode RAPIDE de tri d'un tableau sachant que je souhaite récupérer les index des éléments et non pas les éléments triés.
Je m'explique ;
Un Tableau d'entier d'index 0
[101],[102],[103],[101],[102],[101],[103]
Après le tri, je souhaite obtenir un tableau avec les index des valeurs triées
donc pour mon exemple le résultat serait ;
[0],[3],[5],[1],[4],[2],[6]
Le problème est que mon tableau initial peut contenir plus d'un million de valeur, donc je cherche une solution qui me permet d'obtenir cela très rapidement.

Cordialement.
Megafan



3 réponses

Whismeril Messages postés 19146 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 4 octobre 2024 660
22 sept. 2016 à 17:24
Bonjour,
quel VB?
  • VBS
  • VBA
    • Word
    • Excel
    • Access
    • Powerpoint
    • Autre
  • VB6
  • VB.Net
    • Winform
    • WPF

0
cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 2
22 sept. 2016 à 17:56
VB.NET effectivement, j'aurai pu préciser.
0
Whismeril Messages postés 19146 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 4 octobre 2024 660
22 sept. 2016 à 18:32
Linq est ton ami, voici 101 exemples en C# (il existent pleins de traducteurs en ligne)
https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b

Adapté à ton cas ça donne
        Dim mesEntiers() As Integer = {101, 102, 103, 101, 102, 101, 103}
        Dim mesIndexTries() As Integer = mesEntiers.Select(Function(x, i) New With {Key .Valeur = x, Key .Index = i}).OrderBy(Function(y) y.Valeur).Select(Function(y) y.Index).ToArray()

0
Rejoignez-nous