Adloun

Trier par heure de fin

Exercice · OCaml (option informatique), chapitre 12 — Algorithmes gloutons

É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 &lt; les comparerait par debut d'abord, ce qu'on ne veut pas). Trier par fin est l'étape clé du glouton.

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.