Sorting algorithms/Merge sort: Difference between revisions
Content added Content deleted
(Tacit Recursive Solution added) |
|||
Line 4,166: | Line 4,166: | ||
<syntaxhighlight lang="j"> (/:~ -: mergesort) ?~?10000 |
<syntaxhighlight lang="j"> (/:~ -: mergesort) ?~?10000 |
||
1</syntaxhighlight> |
1</syntaxhighlight> |
||
'''Tacit Recursive Solution''' |
|||
<syntaxhighlight lang="j">case=. 1 * (0 = # x=. @:[) + 2 * (0 = # y=. @:]) |
|||
merge=. ({.x , }.x $: ])`(({.y , }.y $: [))@.({.x > {.y)`]`[@.case |
|||
mergesort=. (>: o ? o # ($: o {. merge $: (o=. @:) }.) ]) ^:(1 < #)</syntaxhighlight> |
|||
Example use: |
|||
<syntaxhighlight lang="j"> mergesort 18 2 8 1 5 14 9 19 11 13 16 0 3 10 17 15 12 4 7 6 |
|||
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19</syntaxhighlight> |
|||
=={{header|Java}}== |
=={{header|Java}}== |