gpt4 book ai didi

scheme - 在方案中对列表进行排序

转载 作者:行者123 更新时间:2023-12-03 21:40:23 25 4
gpt4 key购买 nike

如何编写一个排序算法,以递增顺序返回一个列表。

例如:'(1 3 5 2 9)返回 '(1 2 3 5 9)

最佳答案

大多数 Scheme 实现都带有一个对列表进行排序的过程。如果您的实现没有提供一个,那么在您身上滚动一个并不困难。下面是快速排序算法的实现:

> (define (qsort e)
(if (or (null? e) (<= (length e) 1)) e
(let loop ((left null) (right null)
(pivot (car e)) (rest (cdr e)))
(if (null? rest)
(append (append (qsort left) (list pivot)) (qsort right))
(if (<= (car rest) pivot)
(loop (append left (list (car rest))) right pivot (cdr rest))
(loop left (append right (list (car rest))) pivot (cdr rest)))))))
> (qsort '(1 3 5 2 9))
=> (1 2 3 5 9)

关于scheme - 在方案中对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4261604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com