All pastes #912934 Raw Edit

Someone

public text v1 · immutable
·published 2008-02-21 18:49 UTC
rendered paste body
let sommeb2 a =let n = vect_length a in
  fst ( iterer ( fun (mini, i)-> let (sf, minf, jf) = iterer ( fun (s, min,j)-> let t=s+a.(j) in if t<min then (t, t, j+1) else (t, min, j+1))
n-i-1
(0,mini,i)
in (minf, i+1))
n
(a.(0), 0));;

Toplevel input:
>......................................................iterer ( fun (s, min,j)-> let t=s+a.(j) in if t<min then (t, t, j+1) else (t, min, j+1))
>n....
This expression has type int * int * int -> int * int * int,
but is used with type int.
#

let triselec a = let n = vect_length a in
  snd (iterer ( fun (i,a) -> let (minf, indf, jf)= 
    iterer ( fun (min, indmin, j)-> if a.(j)<min then (a.(i), i, j+1) else ( min, indmin, j+1))
      (n-i)
      (a.(i), i+1, 0) in
  a.(indf)<-a.(i); a.(i)<-minf; (i+1,a))
  (n-1)
  (1,a));;