Ruby冒泡排序算法原理与简单实现方法
时间:2026-08-18 | 作者:云端旅人 | 阅读:0算法原理:
冒泡排序的思路很直观。它会让较大的元素像气泡一样,逐步“浮”到数组末尾。
具体做法是:从数组开头开始,依次比较相邻的两个数。如果左边比右边大,就交换位置。
这样遍历完一轮后,最大的数就会被移动到最后一个位置。
排序过程
完成第一轮后,再重复同样的流程。
不过这时最后一个位置已经确定为最大值,因此不需要再参与比较。每完成一轮,待处理区间就会缩小一个。
持续下去,直到没有任何一对数字需要交换,整个数组就排好了。
实现
下面用数组 [4, 1, 3, 2] 进行演示。
从第一个数开始,依次比较相邻元素。只要前一个数比后一个数大,就交换它们的位置。
第一轮
- 比较4和1,发现4更大 → 交换 →
[1, 4, 3, 2] - 比较4和3,还是4大 → 交换 →
[1, 3, 4, 2] - 比较4和2,仍然4大 → 交换 →
[1, 3, 2, 4]
经过第一轮,最大值4被送到了最后。
第二轮
第二轮开始时,数组状态为 [1, 3, 2, 4]。
- 比较1和3,1小于3,跳过 →
[1, 3, 2, 4] - 比较3和2,3大于2,交换 →
[1, 2, 3, 4]
这一轮到这里就可以停了,因为最后那个4不需要再参与比较。
第三轮
第三轮时,数组看上去已经有序了。
不过算法还是会继续比较一次:比较1和2,不用交换 → [1, 2, 3, 4]。
整个排序完成,原理就是这么简单。
def bubble_sort(list)
list.each_index do |index|
(list.length - index - 1).times do |e|
if list[e] > list[e + 1]
list[e], list[e + 1] = list[e + 1], list[e]
end
end
end
end
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- 使用RVM切换Ruby与Rails版本的实现方法
- 时间:2026-08-18
-
- Ruby语言是什么及入门使用方法
- 时间:2026-08-18
-
- Ruby on Rails网站项目搭建入门指南
- 时间:2026-08-18
-
- Ruby插入排序算法实现与二路插入排序代码示例
- 时间:2026-08-18
-
- Ruby图片滤镜算法实现代码与核心原理
- 时间:2026-08-18
-
- Ruby中Hash哈希结构基本操作方法详解
- 时间:2026-08-18
-
- Ruby面向对象编程:类方法与类扩展详解
- 时间:2026-08-18
-
- Ruby正则表达式语法详解与常用示例代码
- 时间:2026-08-18
精选合集
更多大家都在玩
大家都在看
更多-
- 糖尿病完全不能吃糖吗
- 时间:2026-09-15
-
- 蚂蚁庄园小课堂2026年9月16日最新题目答案
- 时间:2026-09-15
-
- 小鸡答题今天的答案是什么2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园每日答题答案2026年9月16日
- 时间:2026-09-15
-
- 以下哪种粮食是酿造绍兴黄酒的主要原料 蚂蚁庄园今日答案9月16日
- 时间:2026-09-15
-
- 劝学名句“及时当勉励,岁月不待人”出自哪位诗人 蚂蚁庄园今日答案9.16
- 时间:2026-09-15
-
- 蚂蚁庄园今天答题答案2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园答题今日答案2026年9月16日
- 时间:2026-09-15
