class SnowArraySort::MaSort
Public Class Methods
merge(left, right)
click to toggle source
# File lib/SnowArraySort/merge_array_sort_snow.rb, line 24 def self.merge(left, right) sorted = [] until left.empty? or right.empty? (left.first <= right.first) ? sorted << left.shift : sorted << right.shift end sorted + left + right end
merge_sort(lists)
click to toggle source
# File lib/SnowArraySort/merge_array_sort_snow.rb, line 5 def self.merge_sort(lists) return lists if lists.count <= 1 middle = lists[0..(lists.count / 2) - 1 ] left = lists[0..middle.count - 1] right = lists[middle.count..lists.count] x = merge_sort(left) y = merge_sort(right) end
mergesort(container)
click to toggle source
# File lib/SnowArraySort/merge_array_sort_snow.rb, line 16 def self.mergesort(container) return container if (container.size <= 1) mid = container.size / 2 left = container[0...mid] right = container[mid...container.size] merge(mergesort(left), mergesort(right)) end