1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/perry96-SICP

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
quicksort.md 804 Байты
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Perry961002 Отправлено 29.01.2019 15:27 ed1bcbd

快速排序算法

算法核心思想

  • 每次选取第一个元素作为基准,并采用过滤器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)))))

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/perry96-SICP.git
git@api.gitlife.ru:oschina-mirror/perry96-SICP.git
oschina-mirror
perry96-SICP
perry96-SICP
master