all tasks
This commit is contained in:
parent
b83f433714
commit
68f8f3e56b
14735 changed files with 178959 additions and 0 deletions
|
|
@ -0,0 +1,16 @@
|
|||
: mergestep ( accum seq1 seq2 -- accum seq1 seq2 )
|
||||
2dup [ first ] bi@ <
|
||||
[ [ [ first ] [ rest-slice ] bi [ suffix ] dip ] dip ]
|
||||
[ [ first ] [ rest-slice ] bi [ swap [ suffix ] dip ] dip ]
|
||||
if ;
|
||||
|
||||
: merge ( seq1 seq2 -- merged )
|
||||
[ { } ] 2dip
|
||||
[ 2dup [ length 0 > ] bi@ and ]
|
||||
[ mergestep ] while
|
||||
append append ;
|
||||
|
||||
: mergesort ( seq -- sorted )
|
||||
dup length 1 >
|
||||
[ dup length 2 / floor [ head ] [ tail ] 2bi [ mergesort ] bi@ merge ]
|
||||
[ ] if ;
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
( scratchpad ) { 4 2 6 5 7 1 3 } mergesort .
|
||||
{ 1 2 3 4 5 6 7 }
|
||||
Loading…
Add table
Add a link
Reference in a new issue