Merge pull request #17 from danielcarletti/bucket-sort

Bucket sort
This commit is contained in:
Chetan Kaushik 2017-11-05 22:57:43 +05:30 committed by GitHub
commit b33d30af27
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

30
BucketSort.rb Normal file
View file

@ -0,0 +1,30 @@
DEFAULT_BUCKET_SIZE = 5
def bucket_sort(input, bucket_size = DEFAULT_BUCKET_SIZE)
print 'Array is empty' if input.empty?
array = input.split(' ').map(&:to_i)
bucket_count = ((array.max - array.min) / bucket_size).floor + 1
# create buckets
buckets = []
bucket_count.times { buckets.push [] }
# fill buckets
array.each do |item|
buckets[((item - array.min) / bucket_size).floor].push(item)
end
# sort buckets
buckets.each do |bucket|
bucket.sort!
end
buckets.flatten.join(' ')
end
puts "Enter a list of numbers seprated by space"
list = gets
print bucket_sort(list)