看图轻松理解数据结构与算法:冒泡排序

栏目: 编程工具 · 发布时间: 6年前

内容简介:推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。冒泡排序是一种很简单的排序算法,主要思想就是不断走访待排序序列,每次只比较两个相邻元素,如果这俩元素顺序不符合要求则对换它们,不断重复知道没有相邻元素需要对换。在不断走访比较过程中,越大的元素经过交换会慢慢走到数列顶端,所以看起来它就像气泡一样不断往上冒,于是就叫冒泡。假设我们有如下5个元素,分别为

前言

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

冒泡排序

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

排序要点

  1. 比较相邻两个元素,如果前一元素比后一元素大则对换它们的位置。

  2. 从头开始对每一对相邻元素都执行1的对比工作,直至结尾最后一对,执行完一轮后,该轮最大的元素被换置到最后。

  3. 针对所有元素执行若干轮1和2操作,每次经过2操作后都会将该轮的最大值换置到该轮最后,而最后元素不参与下一轮。

  4. 每一轮对越来越少的元素重复3操作,直至没有任何一对元素需要比较。

排序过程

假设我们有如下5个元素,分别为 72,58,22,34,14 ,现在进行冒泡排序。

看图轻松理解数据结构与算法:冒泡排序
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大,两者对换,完成后继续与下一元素比较,

看图轻松理解数据结构与算法:冒泡排序
image

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

看图轻松理解数据结构与算法:冒泡排序
image

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

看图轻松理解数据结构与算法:冒泡排序
image

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

看图轻松理解数据结构与算法:冒泡排序
image

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

看图轻松理解数据结构与算法:冒泡排序

--------------------------------------

跟我交流:

看图轻松理解数据结构与算法:冒泡排序

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

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

为什么写《Tomcat内核设计剖析》

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

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

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

2017文章汇总——JDK源码篇

2017文章汇总——自然语言处理篇

2017文章汇总——Java并发篇


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Learning PHP 5

Learning PHP 5

David Sklar / O'Reilly / July, 2004 / $29.95

Learning PHP 5 is the ideal tutorial for graphic designers, bloggers, and other web crafters who want a thorough but non-intimidating way to understand the code that makes web sites dynamic. The book ......一起来看看 《Learning PHP 5》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具