冒泡排序算法的要点及过程图解

2018-09-1322:06:28数据结构与算法Comments6,543 views字数 781阅读模式

冒泡排序

冒泡排序是一种很简单的排序算法,主要思想就是不断走访待排序序列,每次只比较两个相邻元素,如果这俩元素顺序不符合要求则对换它们,不断重复知道没有相邻元素需要对换。在不断走访比较过程中,越大的元素经过交换会慢慢走到数列顶端,所以看起来它就像气泡一样不断往上冒,于是就叫冒泡。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/4617.html

排序要点

  1. 比较相邻两个元素,如果前一元素比后一元素大则对换它们的位置。
  2. 从头开始对每一对相邻元素都执行1的对比工作,直至结尾最后一对,执行完一轮后,该轮最大的元素被换置到最后。
  3. 针对所有元素执行若干轮1和2操作,每次经过2操作后都会将该轮的最大值换置到该轮最后,而最后元素不参与下一轮。
  4. 每一轮对越来越少的元素重复3操作,直至没有任何一对元素需要比较。

排序过程

假设我们有如下5个元素,分别为72,58,22,34,14,现在进行冒泡排序。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/4617.html

冒泡排序算法的要点及过程图解

第一遍,对所有元素前后两个元素进行比较,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/4617.html

冒泡排序算法的要点及过程图解

72比58大,两者对换,完成后继续与下一元素比较,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/4617.html

冒泡排序算法的要点及过程图解

72比22大,两者对换,完成后继续与下一元素比较,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/4617.html

冒泡排序算法的要点及过程图解

72比34大,两者对换,完成后继续与下一元素比较,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/4617.html

冒泡排序算法的要点及过程图解

72比14大,两者对换,72已经到序列最顶端,它是这一轮的最大的元素。下一轮比较排除72,只需比较58,22,34,14。开始比较,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/4617.html

冒泡排序算法的要点及过程图解

58比22大,两者对换,完成后继续与下一元素比较,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/4617.html

冒泡排序算法的要点及过程图解

58比34大,两者对换,完成后继续与下一元素比较,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/4617.html

冒泡排序算法的要点及过程图解

58比14大,两者对换,58已经到该轮序列最顶端,它是这一轮的最大的元素。下一轮比较排除58,只需比较22,34,14。开始比较,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/4617.html

冒泡排序算法的要点及过程图解

22比34小,两者不对换,继续与下一元素比较,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/4617.html

冒泡排序算法的要点及过程图解

34比14大,两者对换,34已经到该轮序列最顶端,它是这一轮的最大的元素。下一轮比较排除34,只需比较22,14。开始比较,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/4617.html

冒泡排序算法的要点及过程图解

22比14大,两者对换,22已经到该轮序列最顶端,它是这一轮的最大的元素。除了22后只剩一个元素,停止比较,至此完成了整个排序工作。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/4617.html

冒泡排序算法的要点及过程图解
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/4617.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/suanfa/4617.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定