Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- mergesort list = if length list < 2
- then list
- else let half = length list / 2
- left = take half list # take zoberie prvych half prvkov z listu a zahodi zvysok
- right = drop half list # drop utrhne prvych half prvkov z listu a vrati zvysok
- in
- merge (mergesort left) (mergesort right)
- merge [] right = right
- merge left [] = left
- merge left right = if first left < first right # first vrati prvy prvok zoznamu
- then cons (first left) (merge (rest left) right) # rest vrati zvysok zoznamu okrem prveho prvku
- else cons (first right) (merge left (rest right)) # cons prida prvok na zaciatok zoznamu
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement