Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def merge_sort(elements)
- if elements.size <= 1
- return elements
- else
- left = elements[0,(elements.size / 2)]
- right = elements[(elements.size / 2),elements.size]
- sort(merge_sort(left), merge_sort(right))
- end
- end
- def sort(arr1, arr2)
- if arr1.empty?
- arr2
- elsif arr2.empty?
- arr1
- elsif arr1[0] <= arr2[0]
- Array(arr1[0]) + sort(arr1[1..-1], arr2)
- else
- Array(arr2[0]) + sort(arr1, arr2[1..-1])
- end
- end
- elements_to_sort = [10,1,5,3,9,4,2]
- p merge_sort(elements_to_sort) == elements_to_sort.sort
Add Comment
Please, Sign In to add comment