let swap a i j = let t = a.(j) in a.(j) <- a.(i); a.(i) <- t;; let bubble a = for i = 0 to (Array.length a) / 2 do for j = 0 to (Array.length a) - 2 do if a.(j) > a.(j + 1) then swap a j (j + 1) done done;; let qsort a = let rec qsort l r = if l >= r then () else ( let (pl, m, pr) = (ref l , a.((l + r) / 2) , ref r) in while (!pl <= !pr) do while (a.(!pl) < m) do incr pl done; while (a.(!pr) > m) do decr pr done; if !pl <= !pr then (if !pl < !pr then swap a !pl !pr; incr pl; decr pr;); done; if !pl < r then qsort !pl r; if l < !pr then qsort l !pr) in qsort 0 ((Array.length a)-1);; let rec qsort' l = match l with [] -> [] |c::ls -> qsort (filter (fun c' -> c < c') ls) @ [c] @ qsort (filter (fun c' -> c >= c') ls);; let sort a = for i = 0 to Array.length a - 2 do let k = r i in for j=(i+1) to (Array.length a)-1 do if a.(j)