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

let rec place e t j =
  if e >= t.(j)
  then j+1
  else if j <= 0
  then 0
  else place e t (j-1);;

let tri_insertion t =
  let indice_fin = (Array.length t)-1 in
  for i = 1 to indice_fin do
    let p = place t.(i) t (i-1) in
    let
 tmp = t.(i) in
    for k = i-1 downto p do
      t.(k+1) <- t.(k);
    done;
    t.(p) <- tmp;
  done;;

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