Adloun

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

Le cours du chapitre · Tous les exercices du chapitre