quick-sort changes
This commit is contained in:
parent
b95ad66718
commit
25e5f85167
|
|
@ -61,18 +61,23 @@
|
||||||
|
|
||||||
|
|
||||||
; quicksort
|
; quicksort
|
||||||
(defun quick-sort (l)
|
(defun quick-sort-by (l cmp)
|
||||||
(if (<= (len l) 1)
|
(if (<= (len l) 1)
|
||||||
l
|
l
|
||||||
(do
|
(do
|
||||||
(define pivot (first l))
|
(define pivot (first l))
|
||||||
(+
|
(+
|
||||||
(quick-sort (filter (lambda (n) (> pivot n)) l))
|
(quick-sort-by (filter (lambda (n) (cmp pivot n)) l) cmp)
|
||||||
(list pivot)
|
(list pivot)
|
||||||
(quick-sort (tail (filter (lambda (n) (<= pivot n)) l)))
|
(quick-sort-by (tail (filter (lambda (n) (not (cmp pivot n))) l)) cmp)
|
||||||
))
|
))
|
||||||
))
|
))
|
||||||
|
|
||||||
|
(defun quick-sort (l)
|
||||||
|
(quick-sort-by l (lambda (a b) (> a b))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; from list of lists creates csv string
|
; from list of lists creates csv string
|
||||||
; (print (make-csv '(("r1c1" "r1c2") ("r2c1" "r2c2"))))
|
; (print (make-csv '(("r1c1" "r1c2") ("r2c1" "r2c2"))))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue