OCaml (option informatique) · Chapitre 19 · Exercice de TD
Les plus petits éléments
Files de priorité : le tas binaire · niveau 2
É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).
Exercices semblables
- Extraire le minimum corrigé
- Vérifier la propriété de tas corrigé
- Tri par tas corrigé
- Construire un tas en corrigé
- File de priorité de couples corrigé