quicksort.sf 403 B

123456789101112131415161718
  1. #!/usr/bin/ruby
  2. #
  3. ## https://rosettacode.org/wiki/Sorting_algorithms/Quicksort
  4. #
  5. func quicksort (a) {
  6. a.len < 2 && return(a);
  7. var p = a.pop_rand; # to avoid the worst cases
  8. __FUNC__(a.grep{ .< p}) + [p] + __FUNC__(a.grep{ .>= p});
  9. }
  10. var numbers = [7,6,5,9,8,4,3,1,2,0];
  11. say quicksort(numbers);
  12.  
  13. var strs = ["John", "Kate", "Zerg", "Alice", "Joe", "Jane"];
  14. say quicksort(strs);