OCaml (option informatique) · Chapitre 19 · Exercice de TD
Tri par tas
Files de priorité : le tas binaire · niveau 2
Énoncé
Écrire tri_par_tas arr qui trie un tableau d'entiers à l'aide d'un tas.
Corrigé
let tri_par_tas arr =
let n = Array.length arr in
let t = cree n in
for i = 0 to n - 1 do insere t arr.(i) done; (* tout insérer *)
for i = 0 to n - 1 do arr.(i) <- extrait_min t done (* extraire dans l'ordre *)
On insère tous les éléments dans un tas, puis on les extrait : l'extraction du minimum à répétition les rend dans l'ordre croissant. insertions et extractions, chacune en , soit — la même garantie que le tri fusion (chapitre 9).
Exercices semblables
- Extraire le minimum corrigé
- Vérifier la propriété de tas corrigé
- Les plus petits éléments corrigé
- Construire un tas en corrigé
- File de priorité de couples corrigé