Friday, December 26, 2008

Quicksort

Array#sort works great, but its still fun to write a quick sort in ruby!
class Array
 def quicksort
   return self if length <= 1

   pivot = shift
   less, greater = partition {|x| x <= pivot}

   less.quicksort + [pivot] + greater.quicksort
 end
end

puts [8,99,4,1000,1,2,3,100,5,6].quicksort.join(',')

No comments: