原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,

这样一趟过去后,最大或最小的数字被交换到了最后一位,

然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子

例子为从小到大排序,

原始待排序数组| 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相关推荐

  1. 排序 时间倒序_经典排序算法之冒泡排序(Bubble Sort)

    冒泡排序 ( Bubble Sort ) 冒泡排序,正如它的名字一样,未排序数组中的最大(小)值会依次往上浮.冒泡排序主要有两个基本步骤:相邻元素之间的比较 和 交换位置. 步骤分析: 令待排序序列为 ...

  2. php编写冒泡排序算法_PHP排序算法之冒泡排序(Bubble Sort)实现方法详解

    本文实例讲述了PHP排序算法之冒泡排序(Bubble Sort)实现方法.分享给大家供大家参考,具体如下: 基本思想: 冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换 ...

  3. 排序算法之一 冒泡排序(Bubble Sort)

    概述 冒泡排序是一种极其简单的排序算法,它重复地走访过要排序的元素,依次比较相邻两个元素,如果它们的顺序错误就把他们调换过来,直到没有元素再需要交换,排序完成.这个算法的名字由来是因为越小(或越大)的 ...

  4. Java中的经典算法之冒泡排序(Bubble Sort)

    Java中的经典算法之冒泡排序(Bubble Sort) 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2 ...

  5. 7.使用php描述冒泡排序,PHP 数据结构 算法描述 冒泡排序 bubble sort

    PHP 数据结构 算法描述 冒泡排序 bubble sort 复制代码 代码如下: /** * 冒泡排序 bubble sort * * 原理:多次循环进行比较,每次比较时将最大数移动到最上面.每次循 ...

  6. python遍历数组冒泡排序_经典排序算法(冒泡排序,选择排序,插入排序,快速排序,堆排序)python实现...

    最近在复习经典排序算法,自己用python也实现了一下,这里不会涉及到原理(因为网上方法已经很详细啦),就把函数贴上来,可以让大家自己试着运行下,再结合别处的原理也可以更好地理解它们的实现. 如果有错 ...

  7. 【完整可运行源码+GIF动画演示】十大经典排序算法系列——冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序

    以前也零零碎碎发过一些排序算法,但总是不系统, 这次彻底的对排序系列做了一个整体的规划, 小伙伴们快快mark哦~ [GIF动画+完整可运行源代码]C++实现 冒泡排序--十大经典排序算法之一 [GI ...

  8. java冒泡排序经典代码6_经典排序算法之冒泡排序

    一,算法原理 冒泡排序是交换排序的一种,原理是通过比较相邻两个元素的大小,如果发现顺序不对,就交换这两个元素的位置.当第一次循环结束时,最大的元素就被筛选出来,然后进入第二次循环,以此类推,直到没有任 ...

  9. 十大经典排序算法之冒泡排序【一】

    [冒泡排序](Bubble Sort) a)       原理 冒泡排序是最简单的排序算法.它依次比较相邻的两个元素,如果它们的顺序错误就把它们交换过来,它重复的查询所要排序的数列.查询数列的工作直到 ...

  10. 十大经典排序算法之冒泡排序及其优化

    一.冒泡排序 1.冒泡排序算法的原理如下: 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大 ...

最新文章

  1. 微擎url模式解读_微擎开发文档之微擎执行主流程介绍
  2. javascript 匿名函数的理解
  3. conda 和 pip 安装本地包
  4. 城市“脑梗” 当前城市大脑面临的困境
  5. 《Create Your Successful Agile Project》书评与作者访谈
  6. python开发项目案例集锦 pdf_Python项目开发案例集锦 实战项目代码+配套文件
  7. MySQL 客户端命令
  8. 系列有什么区别_哈弗的F系列和H系列,有什么区别?
  9. 微信小程序 | 来自小程序开发者的实例教程 ①
  10. 智能一代云平台(三十九):不同服务之间数据调用的一些思考
  11. 1037. 在霍格沃茨找零钱(20)-PAT乙级真题
  12. Angular7教程-04-Angular常用操作(下)
  13. 5. Keras - CNN应用于手写数字识别
  14. creator qt 字体太小_QtCreator的一些自定义代码字体和颜色
  15. 人民币转换美金的c语言代码大全,美元换算(人民币换算)
  16. 10-24程序员们 节日快乐!
  17. Backtrader量化平台教程(五)Signal
  18. Linux:chmod -R 777 * 是什么意思?
  19. English trip V2-B 4 My Uncle Sam and Apple Pie 山姆大叔和苹果派 Teacher:Tom
  20. AI在实时音视频互动中应用的 n 种姿势

热门文章

  1. SQL函数大全(转)
  2. 从零单排PAT1015,1016,1017,1018
  3. freescale 基于arm m0的单片机
  4. 我的FPA性格色彩测试结果
  5. 8.RabbitMQ实战 --- 从Web端管理RabbitMQ
  6. 6.GitLab 分支管理
  7. 12.docker inspect
  8. 25. Location hash 属性
  9. Java的IO操作中关闭流的注意点
  10. ES6_Day-1-let-const