Adloun

Les plus petits éléments

Exercice · OCaml (option informatique), chapitre 19 — Files de priorité : le tas binaire

Énoncé

Écrire k_plus_petits arr k : la liste des k plus petits éléments de arr, triés.

Corrigé

let k_plus_petits arr k =
  let n = Array.length arr in
  let t = cree n in
  for i = 0 to n - 1 do insere t arr.(i) done;
  let rec extraire j = if j = 0 then [] else extrait_min t :: extraire (j - 1) in
  extraire k

On bâtit un tas de tous les éléments, puis on en extrait les k plus petits (les premiers à sortir). Coût ; on pourrait viser avec une construction de tas en (exercice 8).

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.