Trier un tableau de nombre
Bonjour,
Je me suis amusé à créer une fonction de trie de tableau de nombres, commençant par la première case du tableau, puis la comparant à toutes les autres cases, avant de passer à la suivante. Ce qui donne ça:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| void SortTab(int tab[], int sizeTab) {
int numTemp;
for (int i = 0; i < sizeTab - 1; i++)
{
for (int j = i + 1; j < sizeTab; j++)
{
if (tab[i]>tab[j])
{
numTemp = tab[i];
tab[i] = tab[j];
tab[j] = numTemp;
}
}
}
} |
Mais lors de mes périgrinations sur les internets, je suis tombé sur cette asertion:
Citation:
Il existe de très nombreuses méthodes de tri, dont:
- Chercher le plus petit élément du tableau, l'échanger avec le premier, recommencer en partant du second élément
- Trier le tableau à partir de la gauche, en intercalant les élément un à un dans la partie triée
- Comparer les éléments adjacents et les échanger s'ils sont dans le mauvais ordre, recommencer sur tout le tableau jusqu'à ce que tous les éléments adjacents soient dans le bon ordre
- Prendre la valeur d'un élément au hasard, mettre à gauche les éléments plus petit et à droite les plus grands, recommencer sur les parties droite et gauche jusqu'à ce qu'elles n'aient plus qu'un élément
La dernière méthode est beaucoup plus efficace que les trois premières.
Si je vois plus ou moins comment faire les 3 premiers tris, j'ai un peu plus de mal à visualiser comment coder la dernière. Est-ce que quelqu'un n'aurait pas un exemple?
Merci d'avance,
Red'