lib/nyuudou/extension/array.rb in nyuudou-1.0.3 vs lib/nyuudou/extension/array.rb in nyuudou-1.1.0

- old
+ new

@@ -15,6 +15,29 @@ self[j-1], self[j] = self[j], self[j-1] if self[j-1] > self[j] } } self end + + def selection_sort + ary = self.dup + (0...(ary.length - 1)).each { |i| + min = i + ((i+1)...(ary.length)).each { |j| + min = j if ary[j] < ary[min] + } + ary[i], ary[min] = ary[min], ary[i] + } + ary + end + + def selection_sort! + (0...(self.length - 1)).each { |i| + min = i + ((i+1)...(self.length)).each { |j| + min = j if self[j] < self[min] + } + self[i], self[min] = self[min], self[i] + } + self + end end