to uredi :s if emptyp bf :s [op :s] make "s razcepi :s op zlij uredi first :s uredi last :s end to razcepi :s op dvadela int (count :s)/2 :s [] end to dvadela :n :s :t if 0 = :n [op (list :s :t)] op dvadela :n-1 bf :s se :t first :s end to zlij :s :t if emptyp :s [op :t] if emptyp :t [op :s] ifelse lessp first :s first :t ~ [op se first :s zlij bf :s :t] ~ [op se first :t zlij :s bf :t] end pr "|Urejanje z zlivanjem| show [ 2 6 4 7 8 3 1 5 9 ] show uredi [ 2 6 4 7 8 3 1 5 9 ] make "z [] repeat 100 [make "z lput random 1000 :z ] show :z show uredi :z