module Expertsort::StoogeSort
Public Instance Methods
stoogesort()
click to toggle source
Straight up reimplementation of the algorithm on Wikipedia.
# File lib/expertsort/sorts/stoogesort.rb, line 4 def stoogesort self.dup.stoogesort! end
stoogesort!(i = 0, j = self.length-1)
click to toggle source
# File lib/expertsort/sorts/stoogesort.rb, line 8 def stoogesort!(i = 0, j = self.length-1) if self[j] < self[i] self[i], self[j] = self[j], self[i] end if j - i + 1 >= 3 t = (j - i + 1) / 3 stoogesort!(i, j - t) stoogesort!(i + t, j) stoogesort!(i, j - t) end self end