Adloun

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.