module Expertsort::BogoBogoSort
Public Instance Methods
bogobogosort()
click to toggle source
# File lib/expertsort/sorts/bogobogosort.rb, line 3 def bogobogosort self.dup.bogobogosort! end
bogobogosort!(*arr)
click to toggle source
# File lib/expertsort/sorts/bogobogosort.rb, line 7 def bogobogosort!(*arr) arr = (arr.length == 1) ? arr[0] : self is_sorted = -> (arr) { arr.each_cons(2).all? { |a, b| (a <=> b) <= 0 } } while !is_sorted.call(arr) arr.shuffle! arr.bogobogosort!(dup[0..-2]) end arr end