经典排序算法(七)--冒泡排序Bubble Sort
原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,
这样一趟过去后,最大或最小的数字被交换到了最后一位,
然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子
例子为从小到大排序,
原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 |
第一趟排序(外循环)
第一次两两比较6 > 2交换(内循环)
交换前状态:| 6 | 2 | 4 | 1 | 5 | 9 |
交换后状态:| 2 | 6 | 4 | 1 | 5 | 9 |
第二次两两比较,6 > 4交换
交换前状态:| 2 | 6 | 4 | 1 | 5 | 9 |
交换后状态:| 2 | 4 | 6 | 1 | 5 | 9 |
第三次两两比较,6 > 1交换
交换前状态:| 2 | 4 | 6 | 1 | 5 | 9 |
交换后状态:| 2 | 4 | 1 | 6 | 5 | 9 |
第四次两两比较,6 > 5交换
交换前状态:| 2 | 4 | 1 | 6 | 5 | 9 |
交换后状态:| 2 | 4 | 1 | 5 | 6 | 9 |
第五次两两比较,6 < 9不交换
交换前状态:| 2 | 4 | 1 | 5 | 6 | 9 |
交换后状态:| 2 | 4 | 1 | 5 | 6 | 9 |
第二趟排序(外循环)
第一次两两比较2 < 4不交换
交换前状态| 2 | 4 | 1 | 5 | 6 | 9 |
交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |
第二次两两比较,4 > 1交换
交换前状态| 2 | 4 | 1 | 5 | 6 | 9 |
交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |
第三次两两比较,4 < 5不交换
交换前状态| 2 | 1 | 4 | 5 | 6 | 9 |
交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |
第四次两两比较,5 < 6不交换
交换前状态| 2 | 1 | 4 | 5 | 6 | 9 |
交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |
第三趟排序(外循环)
第一次两两比较2 > 1交换
交换后状态:| 2 | 1 | 4 | 5 | 6 | 9 |
交换后状态:| 1 | 2 | 4 | 5 | 6 | 9 |
第二次两两比较,2 < 4不交换
交换后状态:| 1 | 2 | 4 | 5 | 6 | 9 |
交换后状态:| 1 | 2 | 4 | 5 | 6 | 9 |
第三次两两比较,4 < 5不交换
交换后状态:| 1 | 2 | 4 | 5 | 6 | 9 |
交换后状态:| 1 | 2 | 4 | 5 | 6 | 9 |
第四趟排序(外循环)无交换
第五趟排序(外循环)无交换
排序完毕,输出最终结果1 2 4 5 6 9
经典排序算法(七)--冒泡排序Bubble Sort相关推荐
- 排序 时间倒序_经典排序算法之冒泡排序(Bubble Sort)
冒泡排序 ( Bubble Sort ) 冒泡排序,正如它的名字一样,未排序数组中的最大(小)值会依次往上浮.冒泡排序主要有两个基本步骤:相邻元素之间的比较 和 交换位置. 步骤分析: 令待排序序列为 ...
- php编写冒泡排序算法_PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
本文实例讲述了PHP排序算法之冒泡排序(Bubble Sort)实现方法.分享给大家供大家参考,具体如下: 基本思想: 冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换 ...
- 排序算法之一 冒泡排序(Bubble Sort)
概述 冒泡排序是一种极其简单的排序算法,它重复地走访过要排序的元素,依次比较相邻两个元素,如果它们的顺序错误就把他们调换过来,直到没有元素再需要交换,排序完成.这个算法的名字由来是因为越小(或越大)的 ...
- Java中的经典算法之冒泡排序(Bubble Sort)
Java中的经典算法之冒泡排序(Bubble Sort) 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2 ...
- 7.使用php描述冒泡排序,PHP 数据结构 算法描述 冒泡排序 bubble sort
PHP 数据结构 算法描述 冒泡排序 bubble sort 复制代码 代码如下: /** * 冒泡排序 bubble sort * * 原理:多次循环进行比较,每次比较时将最大数移动到最上面.每次循 ...
- python遍历数组冒泡排序_经典排序算法(冒泡排序,选择排序,插入排序,快速排序,堆排序)python实现...
最近在复习经典排序算法,自己用python也实现了一下,这里不会涉及到原理(因为网上方法已经很详细啦),就把函数贴上来,可以让大家自己试着运行下,再结合别处的原理也可以更好地理解它们的实现. 如果有错 ...
- 【完整可运行源码+GIF动画演示】十大经典排序算法系列——冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序
以前也零零碎碎发过一些排序算法,但总是不系统, 这次彻底的对排序系列做了一个整体的规划, 小伙伴们快快mark哦~ [GIF动画+完整可运行源代码]C++实现 冒泡排序--十大经典排序算法之一 [GI ...
- java冒泡排序经典代码6_经典排序算法之冒泡排序
一,算法原理 冒泡排序是交换排序的一种,原理是通过比较相邻两个元素的大小,如果发现顺序不对,就交换这两个元素的位置.当第一次循环结束时,最大的元素就被筛选出来,然后进入第二次循环,以此类推,直到没有任 ...
- 十大经典排序算法之冒泡排序【一】
[冒泡排序](Bubble Sort) a) 原理 冒泡排序是最简单的排序算法.它依次比较相邻的两个元素,如果它们的顺序错误就把它们交换过来,它重复的查询所要排序的数列.查询数列的工作直到 ...
- 十大经典排序算法之冒泡排序及其优化
一.冒泡排序 1.冒泡排序算法的原理如下: 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大 ...
最新文章
- 微擎url模式解读_微擎开发文档之微擎执行主流程介绍
- javascript 匿名函数的理解
- conda 和 pip 安装本地包
- 城市“脑梗” 当前城市大脑面临的困境
- 《Create Your Successful Agile Project》书评与作者访谈
- python开发项目案例集锦 pdf_Python项目开发案例集锦 实战项目代码+配套文件
- MySQL 客户端命令
- 系列有什么区别_哈弗的F系列和H系列,有什么区别?
- 微信小程序 | 来自小程序开发者的实例教程 ①
- 智能一代云平台(三十九):不同服务之间数据调用的一些思考
- 1037. 在霍格沃茨找零钱(20)-PAT乙级真题
- Angular7教程-04-Angular常用操作(下)
- 5. Keras - CNN应用于手写数字识别
- creator qt 字体太小_QtCreator的一些自定义代码字体和颜色
- 人民币转换美金的c语言代码大全,美元换算(人民币换算)
- 10-24程序员们 节日快乐!
- Backtrader量化平台教程(五)Signal
- Linux:chmod -R 777 * 是什么意思?
- English trip V2-B 4 My Uncle Sam and Apple Pie 山姆大叔和苹果派 Teacher:Tom
- AI在实时音视频互动中应用的 n 种姿势