Как мне написать сортировку слиянием?

Я пытаюсь реализовать сортировку слиянием и получаю ошибку stack level too deep (SystemStackError) при запуске моего кода. Я не уверен, в чем может быть проблема.

def merge_sort(lists)
  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

merge_sort [1,2,3,4,5,6,7,8]

Любая помощь будет отличной!

8
задан the Tin Man 14 January 2014 в 17:24
поделиться