(* ===================================================== *)
(*      Apprentissage de la programmation avec OCaml     *)
(*      Catherine Dubois & Valérie Ménissier-Morain      *)
(*                Éditions Hermès Sciences               *)
(*                        Mars 2004                      *)
(* ===================================================== *)
(* Fichier MLSRC/Tris_vecteurs/selection_vecteur.ml      *)
(* ===================================================== *)

let indice_min_sous_vecteur t début fin =
  let imin = ref début in
  for i = début+1 to fin do
    if
 t.(i) < t.(!imin) then imin := i
  done;
  !imin;;

let échanger t i j =
  let tmp = t.(i) in
  t.(i) <- t.(j);
  t.(j) <- tmp;;

let tri_sélection t =
  let indice_fin = (Array.length t)-1 in
  for i = 0 to indice_fin-1 do
    let j = indice_min_sous_vecteur t i indice_fin in
    if j > i then échanger t i j
  done;;

Ce document a été traduit de LATEX par HEVEA.