Sorting algorithms/Strand sort: Difference between revisions

(Implemented Strand Sort in Haskell.)
Line 99:
return result;
}</lang>
 
=={{header|Common Lisp}}==
<lang lisp>(defun strand-sort (l cmp)
(if l
(let ((o (list (car l))) n)
(loop for i in (cdr l) do
(push i (if (funcall cmp i (car o)) n o)))
(merge 'list
(reverse o)
(strand-sort n cmp) #'<))))
 
(let ((r (loop repeat 15 collect (random 10))))
(print r)
(print (strand-sort r #'<)))</lang>output<lang>(5 8 6 0 6 8 4 7 0 7 1 5 3 3 6)
(0 0 1 3 3 4 5 5 6 6 6 7 7 8 8)</lang>
 
=={{header|Euphoria}}==
<lang euphoria>function merge(sequence left, sequence right)
Anonymous user