Jump to content

Sorting algorithms/Bubble sort: Difference between revisions

→‎{{header|Scheme}}: Fix formatting, simplified, better variable names
m (→‎{{header|Go}}: library change)
(→‎{{header|Scheme}}: Fix formatting, simplified, better variable names)
Line 2,335:
Here is a recursive bubble sort which sorts list 'l' using the comparator 'f':
 
<lang scheme>(define (bsort f l gt?)
(define (dosort l)
(cond ((equalnull? (cdr l) '()) l)
l)
((f (car l) (cadr l)) (cons (cadr l) (dosort (cons (car l) (cddr l)))))
(else (cons(gt? (car l) (dosort (cdrcadr l))))))
(letcons ((rcadr l) (dosort (cons (car l) (cddr l)))))
(else
(cond ((equal? l r) l)
(cons (car l) (dosort (cdr l))))))
(else (bsort f r)))))</lang>
(let ((try (dosort l)))
(condif ((equal? l r) ltry)
l
(bsort try gt?))))
</lang>
For example, you could do
<lang scheme>(bsort > '(3 2 14 6 2))
(1 2 3)</lang>
 
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.