Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (define (partition pivot xs)
- (define (part-it xs smaller greater)
- (cond [(null? xs) (cons smaller greater)]
- [(< (car xs) pivot) (part-it (cdr xs) (append smaller (list (car xs))) greater)]
- [else (part-it (cdr xs) smaller (append greater (list (car xs))))]))
- (part-it xs null null))
- (define (quicksort xs)
- (cond [(null? xs) xs]
- [else (let* ((after-part (partition (car xs) (cdr xs)))
- (smallers (car after-part))
- (greaters (cdr after-part)))
- (append (quicksort smallers) (list (car xs)) (quicksort greaters)))]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement