看图轻松理解数据结构与算法系列(冒泡排序)

前言

推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各类堆、各类队列、各类列表、各类树、各类图、各类排序等等几十篇的样子。mysql

冒泡排序

冒泡排序是一种很简单的排序算法,主要思想就是不断走访待排序序列,每次只比较两个相邻元素,若是这俩元素顺序不符合要求则对换它们,不断重复知道没有相邻元素须要对换。在不断走访比较过程当中,越大的元素通过交换会慢慢走到数列顶端,因此看起来它就像气泡同样不断往上冒,因而就叫冒泡。算法

排序要点

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

排序过程

假设咱们有以下5个元素,分别为72,58,22,34,14,如今进行冒泡排序。sql

image

第一遍,对全部元素先后两个元素进行比较,网络

image

72比58大,二者对换,完成后继续与下一元素比较,数据结构

image

72比22大,二者对换,完成后继续与下一元素比较,并发

image

72比34大,二者对换,完成后继续与下一元素比较,机器学习

image

72比14大,二者对换,72已经到序列最顶端,它是这一轮的最大的元素。下一轮比较排除72,只需比较58,22,34,14。开始比较,数据结构和算法

image

58比22大,二者对换,完成后继续与下一元素比较,学习

image

58比34大,二者对换,完成后继续与下一元素比较,.net

image

58比14大,二者对换,58已经到该轮序列最顶端,它是这一轮的最大的元素。下一轮比较排除58,只需比较22,34,14。开始比较,

image

22比34小,二者不对换,继续与下一元素比较,

image

34比14大,二者对换,34已经到该轮序列最顶端,它是这一轮的最大的元素。下一轮比较排除34,只需比较22,14。开始比较,

image

22比14大,二者对换,22已经到该轮序列最顶端,它是这一轮的最大的元素。除了22后只剩一个元素,中止比较,至此完成了整个排序工做。

image

-------------推荐阅读------------

个人开源项目汇总(机器&深度学习、NLP、网络IO、AIML、mysql协议、chatbot)

为何写《Tomcat内核设计剖析》

个人2017文章汇总——机器学习篇

个人2017文章汇总——Java及中间件

个人2017文章汇总——深度学习篇

个人2017文章汇总——JDK源码篇

个人2017文章汇总——天然语言处理篇

个人2017文章汇总——Java并发篇


跟我交流,向我提问:

欢迎关注:

相关文章
相关标签/搜索