# # # # # # # # #
# /8/quicksort.rb
#
# by Jan Lelis
# e-mail: mail@janlelis.de
# type/version: ruby
# snippet url: http://rbJL.net/8/quicksort.rb
# original post: http://rbJL.net/8-quicksort-in-5-minutes
# license: CC-BY-NC (DE)
#
# (c) 2009 Jan Lelis.
class Array
def qsort
return self if self.length <= 1
pivot = self.shift
left, right = [],[]
self.each { |ele| ele <= pivot ? left << ele : right << ele }
left.qsort + [pivot] + right.qsort
end
end
# Example of use
# p t[8,6,544,423,3].qsort