冒泡排序是一种比较简单的排序算法,其基本思想是重复地遍历数列,每次比较相邻的两个元素,如果前一个元素比后一个元素大,则交换这两个元素的位置,直到遍历完整个数列,这样一次遍历后,数列中最大的元素就被排到了最后面。重复执行此过程,直到整个数列有序为止。
以下是冒泡排序算法的Ruby版简单实现:
def bubble_sort(array)
n = array.length
loop do
swapped = false
(n-1).times do |i|
if array[i] > array[i+1]
array[i], array[i+1] = array[i+1], array[i]
swapped = true
end
end
break unless swapped
end
array
end
上面的代码可以分为两层循环。外层循环执行整个排序过程,内层循环进行排序操作,每次排好最大的元素就向后缩小范围进行下一轮排序。当一次内层循环没有发生元素交换时,说明整个数组已经排序好了,直接跳出循环并返回排序后的数组。
示例一: 对 [3, 7, 1, 4, 9, 6] 进行排序:
array = [3, 7, 1, 4, 9, 6]
bubble_sort(array)
puts array.inspect
输出结果为:[1, 3, 4, 6, 7, 9]
示例二:对 ['pear', 'apple', 'banana', 'orange', 'grape'] 进行排序:
array = ['pear', 'apple', 'banana', 'orange', 'grape']
bubble_sort(array)
puts array.inspect
输出结果为:["apple", "banana", "grape", "orange", "pear"]
以上就是冒泡排序算法及其在Ruby中实现的简单攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:冒泡排序算法及Ruby版的简单实现 - Python技术站