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