Skip to content

Latest commit

 

History

History
23 lines (16 loc) · 804 Bytes

quicksort.md

File metadata and controls

23 lines (16 loc) · 804 Bytes

快速排序算法

算法核心思想

  • 每次选取第一个元素作为基准,并采用过滤器filter将剩余元素中小于等于基准的作为small部分、剩余元素中大于基准的作为big部分,然后对smallbig部分进行快速排序,最后按small-基准-big的顺序组合成新的列表,直到列表中只有一个元素为止.

代码展示

(define (quicksort L)
    (if (null? L)
        '()
        (let ((small (quicksort (filter (lambda (x) (<= x (car L)))
                                        (cdr L))))
              (big (quicksort (filter (lambda (x) (> x (car L)))
                                      (cdr L)))))
            (append small (cons (car L) big)))))