class Quicksort

Public Class Methods

qs(array) click to toggle source
# File lib/qs.rb, line 2
def self.qs (array)
  if array.length <= 1
    return array
  end
  less = Array.new
  greater = Array.new
  pivot = array.delete_at(array.length/2)
  array.each do |x|
    if x < pivot
      less << x
    else
      greater << x
    end
  end
  return (self.qs(less) << pivot << self.qs(greater)).flatten.compact
end