Sélection d'activités
Exercice · OCaml (option informatique), chapitre 12 — Algorithmes gloutons
Énoncé
Écrire selection qui renvoie la liste des activités retenues.
Corrigé
let selection activites =
match tri_fin activites with
| [] -> []
| premiere :: reste ->
let rec choisir fin_courante l =
match l with
| [] -> []
| a :: r ->
if a.debut >= fin_courante then a :: choisir a.fin r
else choisir fin_courante r
in
premiere :: choisir premiere.fin reste
On retient la première (celle qui finit le plus tôt), puis on parcourt les suivantes : chaque activité dont le debut est à la fin_courante est retenue (et devient la nouvelle référence) ; les autres sont écartées.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.