比較しないソートの作成
Posted feedbacks - Common Lisp
baalさんの #6653 を参考にバケットソートで書いてみました。
(bucket-sort -1 10 10 '(-1 9 4 8 9 6 3 9 5 2))
;=> (-1 2 3 4 5 6 8 9 9 9)
(bucket-sort -1 10 10 '(-1 9 4 8 9 6 3 9 5 2))
;=> (-1 2 3 4 5 6 8 9 9 9)
1 2 3 4 5 6 | (defun bucket-sort (min max size data)
(declare (integer min max size) (list data))
(loop :with tem := (make-array (max size (- max min)) :initial-element () )
:for item :of-type integer :in data
:do (push item (svref tem (- item min)))
:finally (return (reduce #'nconc tem))))
|


sweetie089 #6628() Rating3/3=1.00
[ reply ]