namespace Sanchime.Algrithm.Sort [] module Bubble = let rec bsort sorted = function | [] -> [] | [x] -> [x] | xs -> let sxs = xs |> swap sorted if sxs = xs then xs else sxs |> bsort sorted // 比较相邻元素,反复交换 and swap sorted = function | [] -> [] | [x] -> [x] | x::y::xs -> if sorted x y then x::(y::xs |> swap sorted) else y::(x::xs |> swap sorted)