|
|
发表于 2024-11-27 22:04:39
|
显示全部楼层
我来试试
- (define (quicksort lst)
- (if (or (null? lst) (null? (cdr lst)))
- lst
- (let* ((pivot (car lst))
- (rest (cdr lst))
- (smaller (filter (lambda (x) (< x pivot)) rest))
- (greater-or-equal (filter (lambda (x) (>= x pivot)) rest)))
- (append (quicksort smaller) (list pivot) (quicksort greater-or-equal)))))
- ;; 测试示例
- (define test-list '(3 6 8 10 1 2 1))
- (display (quicksort test-list))
- (newline)
复制代码 |
|