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

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

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

例子为从小到大排序,

原始待排序数组| 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. 二分查找模板全面总结
  2. ITTC数据挖掘平台介绍(四) 框架改进和新功能
  3. 逻辑回归损失函数(cost function)
  4. 文本数据分析——主题提取+词向量化
  5. luoguP4503 [CTSC2014]企鹅QQ hash
  6. Oracle-Listener log解读
  7. Windows Phone开发(18):变形金刚第九季——变换
  8. python模块--json \ pickle \ shelve \ XML模块
  9. case when影响性能吗_字段为NULL会影响查询性能吗?
  10. ECharts 点击非图表区域的点击事件不触发问题
  11. mysql与缓存脏读_MySQL 事务的隔离级别问题 之 脏读
  12. 多对一(一对多)的双向关联
  13. flutter 生成文档_Flutter文件操作
  14. 在chrome里查询修改html代码,我需要在网页中直接编辑CSS?打开Web代码检查器
  15. Daily Scrum02 12.03
  16. Spring 的动态数据源实现
  17. 获取自己主机外网ip
  18. 天天生鲜项目——商品详情页
  19. 雷军40岁低潮岁月做了什么,才有小米
  20. CS5211设计方案|替代CH7511B设计电路|EDP转LVDS转接板设计参考电路

热门文章

  1. 构建插件式的应用程序框架(四)----服务容器(ZT)
  2. Linux下PHP开启Oracle支持(oci8)
  3. cuteEditor6.0多语言版(集成lic文件)
  4. Flash Builder 4.7 注释字体修改
  5. Android应用程序反编译
  6. ASP.NET分类信息站全站制作视频教程5(AJAX+SQLITE+生成静态HTML)
  7. printf的输出格式
  8. 检测远程主机上的某个端口是否开启——telnet命令
  9. 【POJ1442】Black Box
  10. node.js安装以及git 的使用说明