sorting_algorithms_selection_sort.sf 597 B

123456789101112131415161718192021222324252627
  1. #!/usr/bin/ruby
  2. #
  3. ## https://rosettacode.org/wiki/Sorting_algorithms/Selection_sort
  4. #
  5. class Array {
  6. method selectionsort {
  7. range(0, self.len-2).each { |i|
  8. var min_idx = i;
  9. range(i+1, self.len-1).each { |j|
  10. self[j] < self[min_idx] && (
  11. min_idx = j;
  12. )
  13. }
  14. self[i, min_idx] = self[min_idx, i];
  15. }
  16. return self;
  17. }
  18. }
  19.  
  20. var numbers = [7,6,5,9,8,4,3,1,2,0];
  21. say numbers.selectionsort;
  22.  
  23. var strs = ["John", "Kate", "Zerg", "Alice", "Joe", "Jane"];
  24. say strs.selectionsort;