sorting_algorithms_stooge_sort.sf 516 B

123456789101112131415161718192021222324252627
  1. #!/usr/bin/ruby
  2. #
  3. ## https://rosettacode.org/wiki/Sorting_algorithms/Stooge_sort
  4. #
  5. func stooge(x, i, j) {
  6. x[j] < x[i] && (
  7. x[i, j] = x[j, i];
  8. );
  9.  
  10. j-i > 1 && do {
  11. var t = ((j - i + 1) / 3);
  12. stooge(x, i, j - t);
  13. stooge(x, i + t, j );
  14. stooge(x, i, j - t);
  15. };
  16. return x;
  17. }
  18.  
  19. var numbers = [7,6,5,9,8,4,3,1,2,0];
  20. say stooge(numbers, 0, numbers.end);
  21.  
  22. var strs = ["John", "Kate", "Zerg", "Alice", "Joe", "Jane"];
  23. say stooge(strs, 0, strs.end);