• Initiateur de la discussion Initiateur de la discussion jp14
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jp14

XLDnaute Barbatruc
Bonjour et bonne année

Je recherche un algorithme rapide en VBA ( sans utiliser les permutations ) pour trier les membres d'une collection.

JP
 
Re : Algorithme de tri

bonsoir jp et spit

pourquoi sans permutations ?

la seule solution que je vois c'est l'utilisation d'une deuxieme collection, qui serait trié dès son alimentation.

tu initialises la seconde collection avec les éléments de la premiere, et trie en meme temps.

mais bon, ca va faire un peu usine à gaz, non ?

donc, je repose ma question, pourquoi sans permutations ^^ ?

salut
 
Re : Algorithme de tri

Bonjour Spitnolan08, Hervé

Merci pour le "quick sort".

Le problème récurrent au tri est le temps de traitement. Lorsqu'on utilise les tris intégrés au système le temps de réponse est insignifiant, ce qui n'est pas le cas d'un tri par permutation ou le temps est proportionnel au nombre de données.

Pour une listview le tri des données est très rapide car on utilise "SortOrder".

Prenons par exemple une base de données avec une colonne qui contient des codes postaux.

Dans un usf on a un "combobox" qui permet de renseigner cette donnée, il faut afficher les codes sans doublons ( en utilisant une collection ) et ensuite il faut trier la liste pour avoir une présentation correcte mais il ne faut pas que le temps de traitement soit trop long.


JP
 
Re : Algorithme de tri

Bonsoir le fil
Salut Pierrejean

Ci joint un fichier avec un usf qui contient des "combobox" et les macros pour afficher dans la combobox des données sans doublons et triées.

La sélection et le tri par permutation est le plus long.
Les deux autres macros sont pratiquement équivalente en temps.

A tester

JP

Pour info sur le Quick sort
Quick sort

Du fait de la réentrance on peut avoir un dépassement au niveau de la pile .
 

Pièces jointes

Dernière édition:
Re : Algorithme de tri

bonjour JP 🙂

Salut Spit 🙂
Salut Hervé 🙂

Pour réhabiliter les permutations !!

En fait ,je suis d'abord parti sur l'idée d'utiliser le dictionary plutot que la collection (me souvenant d'un fil de Hervé dont je n'ais pu retrouver la trace dans mon b..)
puis je me suis posé la question de savoir quelle etait la place du tri au sein du probleme posé et la ......surprise !!

le plus clair du temps est passé a traquer les doublons

ma conclusion (toute personnelle)
le tri sur tableau le plus rapide est le Quick Sort (mais surtout sur un tableau mal classé)
la chasse au doublon la plus rapide est la collection

Note pour ceux qui ont Office 2000
l'aide sur Dictionary comporte une erreur
au lieu de:

Dim d 'Crée une variable
Set d = CreateObject(Scripting.Dictionary)
d.Add "a", "Athènes" 'Ajoute des clés et des éléments

il faut

Dim d 'Crée une variable
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athènes" 'Ajoute des clés et des éléments

Meilleurs Voeux a tous
 

Pièces jointes

Re : Algorithme de tri

Bonjour le fil

Bonjour Pierrejean

Je suis d'accord avec tes conclusions,
Utilisation d'une "collection" pour éliminer les doublons.
Pour info une autre méthode sur le fil
https://www.excel-downloads.com/threads/vba-remplir-une-combobox-sans-doublon.83545/

Concernant le tri tout va dépendre du type et du nombre de données.

Il est, je pense, préférable d'utiliser une méthode qui simplifie l'affectation des données à la combo par l'utilisation de la propriété list " ComboBox6.List = laliste " ce qui évite une boucle for next.

Jp
 
Re : Algorithme de tri

bonsoir a tous

Seduit par ta methode pour alimenter une combobox sans doublons ,j'ais testé

nb: en verité je poste surtout pour corriger une erreur dans le tri de combo6

Code:
ReDim laliste(coll.Count - 1)
For n = 1 To coll.Count
 laliste(n - 1) = coll(n)
Next n
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2019 Excel IA
Réponses
0
Affichages
181
  • Question Question
Microsoft 365 Découverte
Réponses
2
Affichages
192
  • Question Question
Microsoft 365 Graphique à bulles
Réponses
6
Affichages
209
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
301
Réponses
4
Affichages
343
Réponses
4
Affichages
219
Réponses
8
Affichages
131
Retour