Coucou =)
Et je vais me permettre d'ajouter un peu ma sauce à tout ça n'ayant pas réellement compris la demande; voyant Trier un tableau avec doublon (je me suis dis que tu voulais supprimer les doublons car aucune différence entre trier un tableau avec ou sans doublon), mais après j'ai vu qu'il te fallais conserver les doublons.
Deux choses, je ne sais pas en quel langage tu codes, mais il existe certaines structures dans des langages comme Java qui permettent automatiquement de supprimer les doublons à l'insertion.
Ce sont les Set et c'est vraiment très pratique, ça peut s'implémenter bien sûr dans d'autres langages.
- Code: Tout sélectionner
Set<String> set = new HashSet<String>() ;
// ajout d'élément
System.out.println("J'ajoute un : " + set.add("un")) ;
System.out.println("J'ajoute deux : " + set.add("deux")) ;
// ajout d'un doublon : échec
System.out.println("J'ajoute encore un : " + set.add("un")) ;
Ce genre de structure marche très bien si tu veux supprimer tes doublons.
Maintenant si tu veux garder les doublons comme j'ai cru le comprendre; alors de mon point de vue, il serait plus intéressant de faire ta propre structure, de façon à ne pas garder 10 fois le chiffre 2 par exemple, mais seulement de garder en mémoire que 2 doit être présent 10 fois.
Sa se fait très facilement avec une classe en poo ou une structure dans un langage comme C cf en bas
- Code: Tout sélectionner
typedef struct Element_frequence{
int elem;
int frequence=0;
}
Par la suite tu fais simplement un tableau d'élément fréquence au lieu d'entier.
De cette façon tu n'auras pas de doublon, mais tu conserveras la fréquence, et tu auras des tableaux plus légers.
On pourrait même aller jusqu'à faire une autre structure qu'un tableau, un arbre de recherche binaire serait bien plus adapté ici à mon avis.
Si je me permets justement d'évoquer ces deux points c'est parce que tu dis que tu n'es pas étudiant, et donc je ne vois pas l'intérêt de faire un tableau stockant des doublons en dur si ce n'est pas pour un exo...