Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local
- fun min [] = ~1
- | min [m] = m
- | min(m::n::ns) =
- if m < n then min(m::ns)
- else min(n::ns);
- fun isOrdinata [] = true
- | isOrdinata [m] = true
- | isOrdinata(m::n::ns) =
- if(m < n) then isOrdinata(n::ns)
- else false;
- fun sort [] = []
- | sort [x] = [x]
- | sort(x :: y :: ys) =
- if (isOrdinata(x::y::ys) = false) then
- if x = min(x :: y :: ys) then [x] @ sort(y::ys)
- else if y = min(x :: y :: ys) then [y] @ sort(x::ys)
- else sort(ys @ [y] @ [x])
- else
- (x :: y :: ys);
- in
- fun ordina list = sort(list);
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement