Sorting algorithms/Counting sort: Difference between revisions
Content added Content deleted
(Added XPL0) |
(Racket version) |
||
Line 1,283: | Line 1,283: | ||
sorted <- counting_sort(ages, 0, 140) |
sorted <- counting_sort(ages, 0, 140) |
||
print(sorted)</lang> |
print(sorted)</lang> |
||
=={{header|Racket}}== |
|||
<lang racket> |
|||
#lang racket |
|||
(define (counting-sort xs min max) |
|||
(define ns (make-vector (+ max (- min) 1) 0)) |
|||
(for ([x xs]) (vector-set! ns x (+ (vector-ref ns x) 1))) |
|||
(define ys (vector-copy xs)) |
|||
(for/fold ([i 0]) ([n ns] [x (in-naturals min)]) |
|||
(for ([j (in-range i (+ i n ))]) |
|||
(vector-set! ys j x)) |
|||
(+ i n)) |
|||
ys) |
|||
(counting-sort #(0 9 3 8 1 1 1 2 3 7 4) 0 10) |
|||
</lang> |
|||
Output: |
|||
<lang racket> |
|||
'#(0 1 1 1 2 3 3 4 7 8 9) |
|||
</lang> |
|||
=={{header|REXX}}== |
=={{header|REXX}}== |