From: "Jan E." Date: 2012-12-09T02:09:51+09:00 Subject: Re: if n belongs to set a and m belongs to set b repeat some steps, How? Actually, you don't have to do anything with the indices in Ruby: #----------------------------------------- def merge_sort list return list if list.length <= 1 half = list.length / 2 left, right = list.take(half), list.drop(half) merge merge_sort(left), merge_sort(right) end def merge left, right rem_left, rem_right, merged = left.clone, right.clone, [] until rem_left.empty? or rem_right.empty? if rem_left.first <= rem_right.first merged << rem_left.shift else merged << rem_right.shift end end merged + rem_left + rem_right end p merge_sort [5, 2, 3, 4, 1] #----------------------------------------- I'll look into your code later, but in any case the expression (a..b, c..d) isn't valid. There are no tuples or something in Ruby. You'd have to use an array: [a..b, c..d]. -- Posted via http://www.ruby-forum.com/.