From: Colin Date: 2006-04-30T03:38:55+09:00 Subject: Re: Learn to Program, by Chris Pine Hello, thank you very much for all these good answers (especially to Jan_K and Dave Burt ). Im learning ruby with the same book and get stuck in chapter 10.2 Rite of Passage:Sorting this exercise is about array sort algorithms. Instead of 'array.sort' i have to program my own sort method. chris pine gives a few hints: using < to find the smallest word in a list take two lists in the method and these two empty methods def sort some_array recursive_sort some_array, [] end def recursive_sort unsorted_array, sorted_array end After a lot of trying and searching ... ...I found the quicksort algorithm and this code def quicksort( array ) if array.size <= 1 array else ls, rest = array.partition { |i| i < array[0] } puts 'ls:'+ls.to_s puts 'rest:'+rest.to_s rs, rest = rest.partition { |i| i > array[0] } puts 'rs:'+rs.to_s puts 'rest2:'+rest.to_s quicksort( ls ) + rest + quicksort( rs ) end end Yes this is a possible solution, but array.partion ,double assignments(ls,rest) of variables,arrays and the 'short block' (like { |i| i > array[0] }) are not mentioned in any chapter before. Although I understand the Code above , I'm looking for an easy solution that don't leave the scope of chaper 1 to 10 . Here's my own code, but it doesn't work . def ownsort unsort, sort rest=[] rs=[] if unsort.size <= 1 unsort else unsort.each do |i| if i