Tri par insertion

Description

Les listes triées sont très pratiques pour des quantités de données limitées : une liste semble pouvoir contenir plus de 32767 éléments (il faudrait les compter pour être sûr, en tout cas, on n'a pas de message d'erreur) mais liste.listcount retourne systématiquement un nombre signé codé sur 16 bits, donc compris entre -32768 et +32767 ce qui rend les éléments excédentaires inaccessibles.
Pour traiter de grandes quantités de données on doit donc recourir à un tableau. Le plus simple consiste à trier le tableau au fur et à mesure de sa création, ce qui équivaut à un tri par insertion.
La limite théorique est alors d'un peu plus de 2 milliards d'items.

Conclusion :


Cet exemple est destiné aux débutants et permet de se familiariser avec les tableaux dynamiques (dim, redim, preserve, ubound, erase...)
Le temps de traitement qui passe, sur ma vieille machine, de 6 sec pour 10000 chaînes à 96 sec pour 50000 augmente plus vite que le nombre d'éléments à traiter. Cela vient du fait qu'il faut décaler vers le haut un certain nombre d'éléments à chaque insertion. Une optimisation doit être possible à ce niveau et m'intéresserait.

Codes Sources

A voir également

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.