Trier un tableau mais en récupérant les index [Résolu]

Messages postés
390
Date d'inscription
dimanche 7 avril 2002
Dernière intervention
23 septembre 2016
- - Dernière réponse : Whismeril
Messages postés
12362
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 décembre 2018
- 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



Afficher la suite 

Votre réponse

3 réponses

Messages postés
12362
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 décembre 2018
0
Merci
Bonjour,
quel VB?
  • VBS
  • VBA
    • Word
    • Excel
    • Access
    • Powerpoint
    • Autre
  • VB6
  • VB.Net
    • Winform
    • WPF

Commenter la réponse de Whismeril
Messages postés
390
Date d'inscription
dimanche 7 avril 2002
Dernière intervention
23 septembre 2016
0
Merci
VB.NET effectivement, j'aurai pu préciser.
Commenter la réponse de cs_Megafan
Messages postés
12362
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 décembre 2018
0
Merci
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()

Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.