Slide 15
Slide 15 text
rubyconf 2019
SORTING
QUICK SORT
def quicksort
qsort_help(0, self.length - 1)
end
def qsort_help(p, r)
return unless p < r
q = partition(p, r)
qsort_help(p, q - 1)
qsort_help( q + 1, r)
end
def partition(p, r)
x = self[r]
i = p - 1
(p...r).each do |j|
if self[j] <= x
i += 1
swap(i, j)
end
end
swap(i + 1, r)
i + 1
end