gpt4 book ai didi

冒泡排序算法及Ruby版的简单实现

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章冒泡排序算法及Ruby版的简单实现由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

算法原理:

比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较.

实现 假设有这样一个数组: [4, 1, 3, 2] 冒泡排序为从第一个数开始,吧这个数与后面的数比较,如果这个数比后面的大,就交换他们的位置。 比如,第一次比较4和1,发现4比1大,交换 -> [1, 4, 3, 2] 第二次比较4和3,发现还是4大,交换 -> [1, 3, 4, 2] 第三次比较4和2,仍然4比2大,交换 -> [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] 这里比较就全部完成。原理非常简单.

?
1
2
3
4
5
6
7
8
9
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

最后此篇关于冒泡排序算法及Ruby版的简单实现的文章就讲到这里了,如果你想了解更多关于冒泡排序算法及Ruby版的简单实现的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com