Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,25 @@
|
|||
(define (insertions e list)
|
||||
(if (null? list)
|
||||
(cons (cons e list) list)
|
||||
(cons (cons e list)
|
||||
(map (lambda (tail) (cons (car list) tail))
|
||||
(insertions e (cdr list))))))
|
||||
|
||||
(define (permutations list)
|
||||
(if (null? list)
|
||||
(cons list list)
|
||||
(apply append (map (lambda (permutation)
|
||||
(insertions (car list) permutation))
|
||||
(permutations (cdr list))))))
|
||||
|
||||
(define (sorted? list)
|
||||
(cond ((null? list) #t)
|
||||
((null? (cdr list)) #t)
|
||||
((<= (car list) (cadr list)) (sorted? (cdr list)))
|
||||
(else #f)))
|
||||
|
||||
(define (permutation-sort list)
|
||||
(let loop ((permutations (permutations list)))
|
||||
(if (sorted? (car permutations))
|
||||
(car permutations)
|
||||
(loop (cdr permutations)))))
|
||||
Loading…
Add table
Add a link
Reference in a new issue