Sorting algorithms/Merge sort: Difference between revisions
Content added Content deleted
m (→{{header|Wren}}: Minor tidy) |
Not a robot (talk | contribs) (Add Refal) |
||
Line 6,933: | Line 6,933: | ||
a |
a |
||
]</pre> |
]</pre> |
||
=={{header|Refal}}== |
|||
<syntaxhighlight lang="refal">$ENTRY Go { |
|||
, 7 6 5 9 8 4 3 1 2 0: e.Arr |
|||
= <Prout e.Arr> |
|||
<Prout <Sort e.Arr>>; |
|||
}; |
|||
Sort { |
|||
= ; |
|||
s.N = s.N; |
|||
e.X, <Split e.X>: (e.L) (e.R) = <Merge (<Sort e.L>) (<Sort e.R>)>; |
|||
}; |
|||
Split { |
|||
(e.L) (e.R) = (e.L) (e.R); |
|||
(e.L) (e.R) s.X = (e.L s.X) (e.R); |
|||
(e.L) (e.R) s.X s.Y e.Z = <Split (e.L s.X) (e.R s.Y) e.Z>; |
|||
e.X = <Split () () e.X>; |
|||
}; |
|||
Merge { |
|||
(e.L) () = e.L; |
|||
() (e.R) = e.R; |
|||
(s.X e.L) (s.Y e.R), <Compare s.X s.Y>: { |
|||
'-' = s.X <Merge (e.L) (s.Y e.R)>; |
|||
s.Z = s.Y <Merge (s.X e.L) (e.R)>; |
|||
}; |
|||
};</syntaxhighlight> |
|||
{{out}} |
|||
<pre>7 6 5 9 8 4 3 1 2 0 |
|||
0 1 2 3 4 5 6 7 8 9</pre> |
|||
=={{header|REXX}}== |
=={{header|REXX}}== |