Défi
Énoncé
Déclarer type Personne struct { Nom string; Age int } et type Personnes []Personne. Implémenter sort.Interface pour Personnes en définissant les trois méthodes requises : Len() int retourne len(p), Swap(i, j int) échange p[i] et p[j], et Less(i, j int) bool retourne true si p[i].Age < p[j].Age, ou si les âges sont égaux, si p[i].Nom < p[j].Nom. Appeler sort.Sort dans main sur une slice de cinq personnes et afficher chaque personne après le tri.
Contraintes
- Compilé avec
go build(Go 1.21+). - Implémenter
sort.Interfacemanuellement : ne pas utilisersort.Slicenislices.SortFunc. - Les trois méthodes (
Len,Swap,Less) doivent être définies sur le typePersonnes. - Tri stable non requis :
sort.Sortest suffisant. - Packages autorisés :
fmt,sort.
Exemple
personnes := Personnes{
{"Alice", 30},
{"Bob", 25},
{"Carol", 30},
{"Dave", 20},
{"Eve", 25},
}
sort.Sort(personnes)
Sortie après tri :
{Dave 20}
{Bob 25}
{Eve 25}
{Alice 30}
{Carol 30}
Les personnes de même âge (Bob/Eve à 25 ans, Alice/Carol à 30 ans) sont ordonnées alphabétiquement.