我的基本想法是实现一种冒泡类型('a list -> 'a list)
。sorted
我使用的是和的变量result
。如果我更改列表中的某些元素,则sorted
变为 1。否则,sorted
仍为 0。Result
是比较的一个周期。
我认为我的sorted
变量有问题。谁能弄清楚问题是什么?
let rec sort (l: int list) : int list =
let sorted=0 in
let result = match l with
| []->[]
| x::xs-> if xs=[] then x
else let y::ys = xs in
if x<y then x::sort(xs)
else let sorted=1 in
y::sort(x::ys)
in
if sorted=0 then result
else sort(result)