Q4: Cet exercice à pour but de vous faire programmer une méthode de tri.
L'algorithme que vous devez programmer triera les éléments d'un tableau dans un ordre décroissant.
Pour chaque position du tableau, vous devez exécuter les deux opérations suivantes:
- 1- la recherche dans le tableau de l'élément le plus grand (emax),
- 2- la permutation de emax avec l'élément pointé par la position courante.
Soit le tableau tab des entiers contenant ce qui suit: int tab[5] = {7,6,8,2,5};
La table suivante illustre le fonctionnement de ce tri pour le tableau tab
tab
|
position
|
emax
|
7 6 8 2 5
|
0
|
8
|
8 6 7 2 5
|
1
|
7
|
8 7 6 2 5
|
2
|
6
|
8 7 6 2 5
|
3
|
5
|
8 7 6 5 2
|
4
|
2
|
Dans la colonne tab, les éléments en caractères gras, représentent les éléments déjà triée.
résultat du tri: {8,7,6,5,2}
Question -1-
Écrire une fonction permettant de trier un tableau d'entiers tab de dimension taille, en utilisant pour cela ces consignes de programmation:
- -1- vous devez utiliser l'algorithme de tri précédemment expliqué.
- -2- vous ne devez pas utiliser d'autre tableau que le tableau original pour réaliser le tri.
- -3- vous pouvez si vous le souhaiter découper votre code en plusieurs fonctions.
- -4- vous ne devez pas utiliser les STL.
Question -2-
Modifier votre fonction afin de permettre de trier aussi bien le type int, le type char et le type string.
Question -3-
Modifier votre fonction de tri afin de permettre de trier le type char*. À titre d'exemple d'un tableau char*:
char* tab[7] = {"safran", "voile", "foc","gouvernail", "catamaran", "coque", "Hobie Cat"};
Question -4-
Écrire la classe tableau, qui contient:
- membres données:
- taille // un entier, taille du tableau tab
- tab // un tableau du type T, qui peut être un int, char, char*, string.
- membres fonctions:
- constructeurs+destructeur etc.
- les fonctions de tri
- operateur de <<