Sorting algorithms/Bubble sort: Difference between revisions
Content added Content deleted
m (→{{header|Go}}: library change) |
(→{{header|Scheme}}: Fix formatting, simplified, better variable names) |
||
Line 2,335: | Line 2,335: | ||
Here is a recursive bubble sort which sorts list 'l' using the comparator 'f': |
Here is a recursive bubble sort which sorts list 'l' using the comparator 'f': |
||
<lang scheme>(define (bsort |
<lang scheme>(define (bsort l gt?) |
||
(define (dosort l) |
|||
(cond ((null? (cdr l)) |
|||
l) |
|||
((f (car l) (cadr l)) (cons (cadr l) (dosort (cons (car l) (cddr l))))) |
|||
((gt? (car l) (cadr l)) |
|||
(cons (cadr l) (dosort (cons (car l) (cddr l))))) |
|||
(else |
|||
⚫ | |||
(cons (car l) (dosort (cdr l)))))) |
|||
(else (bsort f r)))))</lang> |
|||
(let ((try (dosort l))) |
|||
⚫ | |||
l |
|||
(bsort try gt?)))) |
|||
</lang> |
|||
For example, you could do |
For example, you could do |
||
<lang scheme>(bsort > '( |
<lang scheme>(bsort > '(2 4 6 2)) |
||
(1 2 3)</lang> |
(1 2 3)</lang> |
||