OCaml (option informatique) · Chapitre 12 · Exercice de TD
Trier par heure de fin
Algorithmes gloutons · niveau 2
Énoncé
Écrire tri_fin qui trie une liste d'activités par fin croissante.
Corrigé
let rec tri_fin l =
let rec insere a l =
match l with
| [] -> [a]
| b :: reste -> if a.fin <= b.fin then a :: l else b :: insere a reste
in
match l with
| [] -> []
| a :: reste -> insere a (tri_fin reste)
C'est le tri par insertion du chapitre 9, mais comparant le champ fin des enregistrements (un tri générique < les comparerait par debut d'abord, ce qu'on ne veut pas). Trier par fin est l'étape clé du glouton.
Exercices semblables
- Sélection d'activités corrigé
- Nombre maximal d'activités corrigé
- Rendu optimal exhaustif corrigé
- Quand le glouton se trompe corrigé
- Sac à dos fractionnaire corrigé