counting_sort.sf 287 B

123456789101112131415
  1. #!/usr/bin/ruby
  2. #
  3. ## https://rosettacode.org/wiki/Sorting_algorithms/Counting_sort
  4. #
  5. func counting_sort(a, min, max) {
  6. var cnt = ([0] * (max - min + 1))
  7. a.each {|i| cnt[i-min]++ }
  8. cnt.map {|i| [min++] * i }.flat
  9. }
  10.  
  11. var a = 100.of {100.irand}
  12. say counting_sort(a, 0, 100)