#!/usr/bin/ruby # ## http://rosettacode.org/wiki/Sorting_algorithms/Selection_sort#Sidef # class Array { method selectionsort { range(0, self.len-2).each { |i| var min_idx = i; range(i+1, self.len-1).each { |j| self[j] < self[min_idx] && ( min_idx = j; ) } self[i, min_idx] = self[min_idx, i]; } return self; } } var r = 10.of { .irand } var arr = r.selectionsort; assert_eq(arr, r.sort) say "** Test passed!"