module AllSort

Constants

VERSION

Public Instance Methods

bubble_sort(arr) click to toggle source
# File lib/all_sort.rb, line 4
def bubble_sort arr
       n =arr.length
       loop do
               swapped = false
               (n-1).times do |i|
                       if arr[i] < arr[i+1]
                               arr[i],arr[i+1] = arr[i+1],arr[i]
                               swapped = true
                       end
               end
               break if not swapped
       end
       arr
end
merge_sort(arr) click to toggle source
# File lib/all_sort.rb, line 24
def merge_sort arr
       return arr if arr.length <=1
       piv = (arr.length/2)
       r_array = merge_sort(arr[0..piv-1])
       l_array = merge_sort(arr[piv..arr.length])
       merger(r_array, l_array)
end
merger(right, left) click to toggle source
# File lib/all_sort.rb, line 31
def merger right, left
       if right.empty?
               return left
       elsif left.empty?
               return right
       elsif left.first < right.first
               [left.first] + merger(left[1..left.length],right)
       else
               [right.first] + merger(left,right[1..right.length])
       end
end
quick_sort(arr) click to toggle source
# File lib/all_sort.rb, line 18
def quick_sort arr
               return [] if arr.empty?
               piv = arr.sample
               left, right = arr.partition(&piv.method(:>))
               return quick_sort(left)+[piv]+quick_sort(right)
end