冒泡排序

1、每次比较相邻的元素,如果第一个比第二个大(或小),就交换他们两个。

2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大(或小)的数。

3、针对所有的元素重复以上的步骤,除了最后已经选出的元素

4、持续每次对越来越少的元素(无序元素)重复上面的步骤,直到没有任何一对数字需要比较,则序列最终有序。

代码如下:

仔细思考下,冒泡排序存在一个可优化的点,很多资料里面提到提前结束,也就是上面程序里面的减少循环次数,比如我们有个数组[1,2,4,5,3],如果按照上面的代码执行,i则从0到4,循环四次,而实际上1、2已经有序,只需要冒3次泡就可以完成了,代码怎么实现那?实际上就是增加提前结束的条件,当某一次循环如果没有做过任何冒泡操作,说明该数组应有序,则可以提前结束,是不是有种豁然开朗的感觉啊~~。下面我们上代码:

经典的冒泡排序完成。反过来,如果要做用冒泡的方法做倒叙排序,怎么实现?思考一下,稍作修改即可,代码如下:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 冒泡排序插入排序插入排序和冒泡排序分析 冒泡排序 冒泡排序(英语:Bubble Sort,台湾另外一种译名为:泡沫...
    六尺帐篷阅读 2,246评论 0 9
  • 冒泡排序(Bubble Sort)是一种典型的交换排序算法,通过交换数据元素的位置进行排序。 一、算法基本思想 (...
    萧然_fe14阅读 295评论 0 0
  • 操作步骤1、比较相邻的元素。如果第一个比第二个大(小),就交换他们两个。2、对每一对相邻元素作同样的工作,从开始第...
    别闹_53c1阅读 311评论 0 0
  • 原理 1、比较相邻的元素。如果第一个比第二个大,就交换他们两个2、对每一对相邻元素作同样的工作,从开始第一对到结尾...
    史睿呀阅读 169评论 0 0
  • 冒泡排序是一种极其简单的排序算法,也是我所学的第一个排序算法。它重复地走访过要排序的元素,一次比较相邻两个元素,如...
    BEYOND黄阅读 327评论 0 1