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 }
puts 'ls:'+ls.to_s
puts 'rest:'+rest.to_s
rs, rest = rest.partition { |i| i > array }
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 })
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 <unsort

sort.push i
else
rest.push i
end
end

end
rest
end

thanks for reading and hopefully some hints...

colin

--
Posted via http://www.ruby-forum.com/.