35 lines
723 B
Ruby
35 lines
723 B
Ruby
# Copyright (C) 2017 Kevin Cotugno
|
|
# All rights reserved
|
|
#
|
|
# Distributed under the terms of the MIT software license. See the
|
|
# accompanying LICENSE file or http://www.opensource.org/licenses/MIT.
|
|
|
|
def bubble_sort(unsorted)
|
|
sorted = unsorted.clone
|
|
count = sorted.count
|
|
|
|
count.times do |i|
|
|
(count - i - 1).times do |j|
|
|
if sorted[j] > sorted[j+1]
|
|
t = sorted[j]
|
|
sorted[j] = sorted[j+1]
|
|
sorted[j+1] = t
|
|
end
|
|
end
|
|
end
|
|
|
|
sorted
|
|
end
|
|
|
|
puts 'All elements must be integers'
|
|
print 'How many elements? '
|
|
num = gets.to_i
|
|
|
|
elements = Array.new(num) do |i|
|
|
print "Enter element #{i + 1}: "
|
|
gets.to_i
|
|
end
|
|
|
|
print "Sorted: #{elements}\n"
|
|
print "Unsorted: #{bubble_sort(elements)}\n"
|