18 lines
440 B
Scheme
18 lines
440 B
Scheme
(define (quicksort lst)
|
|
(if (null? lst)
|
|
lst
|
|
(begin
|
|
(define pivot (car lst))
|
|
(define rest (cdr lst))
|
|
(append
|
|
(quicksort
|
|
(filter (lambda (x) (< x pivot)) rest))
|
|
(list pivot)
|
|
(quicksort
|
|
(filter (lambda (x) (>= x pivot)) rest)))
|
|
)
|
|
)
|
|
)
|
|
(display
|
|
(quicksort (list 2 1 6 3 4 0 8 9 7 5)))
|