Module: BogoSort

Defined in:
lib/bogo_sort.rb,
lib/bogo_sort/version.rb

Constant Summary collapse

VERSION =
"1.0.0"

Instance Method Summary collapse

Instance Method Details

#bogo_sortObject Also known as: bogosort



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/bogo_sort.rb', line 4

def bogo_sort
  loop do
    catch(:break) do
      shuffled = shuffle
      (shuffled.length - 1).times do |i|
        compare_result = shuffled[i] <=> shuffled[i + 1]
        return nil if compare_result.nil?
        throw(:break) if compare_result >= 1
      end
      return shuffled
    end
  end
end

#bogo_sort!Object Also known as: bogosort!



18
19
20
21
# File 'lib/bogo_sort.rb', line 18

def bogo_sort!
  result = bogosort
  result.nil? ? nil : replace(result)
end