Tri générique : tri rapide, tri à bulle, tri par sélection

Soyez le premier à donner votre avis sur cette source.

Vue 37 001 fois - Téléchargée 2 070 fois

Description

J'ai eu à faire pas mal de tri sur diverses choses ces derniers temps, aussi, je me suis fait cette petite bibliothèque de tri générique.

Ainsi en entrée, je prends tout type de tableau (y compris des tableaux d'objet) que je trie (comparaison faite à l'aide de la classe Comparer de C#).

Conclusion :


Pour tester il suffit de créer une nouvelle instance de sorting avec un tableau, de définir la direction du tri (croissante, décroissante), et de lancer derrière la méthode que vous voulez (pour l'instant : QuickSort, SelectSort et BubbleSort)

J'espère dans le futur y ajouter le tri par insertion, et le tri par tas (les classes sont déjà faites, mais elles ne réagissent pas correctement).

J'attends vos remarques pour optimiser un peu tout ça :p

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Horslemonde
Messages postés
4
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
23 janvier 2006
-
bien, mais il manque le tri dichotomique et le tri par arbirescence binaire...
basteo
Messages postés
1
Date d'inscription
lundi 13 février 2006
Statut
Membre
Dernière intervention
21 décembre 2006
-
Bonjour
Je n'ai pas testé, mais je pense que l'on peut optimiser légèrement le tri à bulle en se remémorant le dernier "swap" effectué : il n'est alors pas utile d'aller plus loin.
On remplace le boolen [bSort] par une variable [LastSwap].
Cela permet de profiter du fait que le tableau est déjà ordonné pour certaine partie.
J'écris un algo simplifié de la méthode ci-dessous...

i = Fin;
while (i>0)
{
LastSwap=0;
for (j=1;j<=i;j++)
{
if (el[j-1]>el[j])
{
swap(j, j-1);
LastSwap=j;
}
}
i = LastSwap-1;
}

Basteo

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.