冒泡排序

1、什么是冒泡排序?

冒泡排序是一种简单的排序算法,通过交换排序实现效果,使用与小规模的数据排序。

原理: 把一个乱序的数组,以某种规则(从大到小、从小到大)进行排序,通过比较相邻的元素,两两对比交换 ,完成排序;类似于吹泡泡一样,小的先飘起来,大的最后落在地上。

2、逻辑思路

从小到大排序:

(1)先遍历数组,让挨着的两个数据进行比较大小,前者比后者大,则将后者排到前面

(2)第一次遍历结束之后,最后的那个数据就是最大的一个

(3)接着又从第一个数据开始第二次遍历,依旧两两进行比较,本次遍历结束后,第二大数据会排在倒数第二位 (最后一次比较时,前者小后者大,结束本次遍历)

(4)以此类推,将数组进行遍历,完成小到大的排序

当两者在进行交换的时候,
无法完成直接交换,需要第三者来进行协助
比如: 交换两杯水(奶茶A 和可乐B 换杯子)> 需要先准备一个 空杯子C> 将奶茶A倒在空杯子C中    =>此时A空了,C满了> 将可乐B倒在之前奶茶A的杯子里    =>此时B空了,A满了> 再将C中的奶茶倒在B里面     =>  完成交换
 // 1、准备一个数组var arr=[1, 9, 6, 4, 5, 8, 3, 2, 7] // 2、定义循环次数,排序是两两比较,因此循环的次数为 数组长度-1for (var j = 0; j < arr.length - 1; j++) {for (var i = 0; i < arr.length - 1 - j; i++) {     // 声明变量 i 来记录数组当中每一项数据的索引值(0,1,2……)if (arr[i] > arr[i + 1]) {    // 满足条件即交换var help = arr[i];arr[i] = arr[i + 1];arr[i + 1] = help;}}}console.log(arr);

结果如图:

从大到小排序
思路同上,只需更换判断条件即可

 // 1、准备一个数组var arr=[1, 9, 6, 4, 5, 8, 3, 2, 7] // 2、定义循环次数,排序是两两比较,因此循环的次数为 数组长度-1for (var j = 0; j < arr.length - 1; j++) {for (var i = 0; i < arr.length - 1 - j; i++) {     // 声明变量 i 来记录数组当中每一项数据的索引值(0,1,2……)if (arr[i] < arr[i + 1]) {    // 满足条件即交换var help = arr[i];arr[i] = arr[i + 1];arr[i + 1] = help;}}}console.log(arr);

结果如图:

冒泡排序的原理、方法相关推荐

  1. Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理

    Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理 1. 重载包括:普通方法的重载和构造方法的重载 1 1.1. 横向重载"和"纵向重载"1 1.2.  ...

  2. 《SOA 原理•方法•实践》作者毛新生先生签名售书活动

    <SOA 原理•方法•实践>作者毛新生先生签名售书活动 2007年8月24日 北京香格里拉 毛新生先生将在"SOA 架构你的未来"大会现场签名售书 更多详情请访问:ht ...

  3. 《SOA 原理 方法 实践》作者毛新生先生签名售书活动圆满结束

    <SOA 原理 方法 实践>作者毛新生先生签名售书活动圆满结束 8月24日,由互动出版网和博文视点资讯有限公司共同举办的<SOA 原理o方法o实践>作者毛新生先生签名售书活动圆 ...

  4. python和报表生成工具_报表自动生成工具的原理方法,及热门软件

    阅读提示: 文章中与FineReport软件使用的相关内容,基于软件的V7.0旧版本编写,不代表软件最新的使用方式. FineReport最新版免费试用:https://www.finereport. ...

  5. 杨辉三角-原理方法的由来

    杨辉三角的原来(来自百度) 北宋人贾宪约1050年首先使用"贾宪三角"进行高次开方运算, 南宋数学家杨辉在<详解九章算法>(1261年)中,保存了一张宝贵图形--&qu ...

  6. ndi协议_NDI是什么协议,NDI传输协议技术原理方法

    NDI是什么协议,NDI传输协议技术原理方法 NDI是什么协议 NDI就是一种接口传输协议. NDI就是通过IP网络进行超低延时.无损传输.交互控制的标准协议: NDI协议最大的不同是:NDI视频传输 ...

  7. Python——冒泡排序(原理剖析)

    文章目录 前言 一.冒泡排序概念 二.原理分析 小结 三.代码实现 1.排序方式小------->大 2.排序方式大------->小 总结 前言 我在大学里面主要学习的语言主要是pyth ...

  8. 冒泡排序的原理,思路,以及算法分析(Java实现)

    冒泡排序 如果遇到相等的值不进行交换,那这种排序方式是稳定的排序方式. 1.原理:比较两个相邻的元素,将值大的元素交换到右边 2.思路:依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面. ...

  9. 冒泡排序java jsp_冒泡排序实现原理

    原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将 ...

最新文章

  1. linux path环境变量检索目录,Linux下动态链接库加载路径及搜索路径问题
  2. 系统调用003 系统服务表
  3. 快递员要失业?两位前谷歌工程师研发出自动驾驶汽车只送货不载人
  4. 用于J2EE开发的Cloud IDE
  5. linux 系统命令之wget和yum和apt-get区别
  6. os.path的使用
  7. 用python开发的运维管理系统下载_GitHub - jiegangwu/OPMS_v3: 基于 Python 3.5 + Django 2.0 开发的运维管理系统...
  8. springmvc+druid+dataSource配置的两种方式
  9. 基于ArcGIS软件的打开教程
  10. 图说三极管的三个工作状态____图解的很形象
  11. 使用命令行连接MySQL数据库
  12. vc 写一个计算机功能,VC++的一个实例
  13. 域名查询工具DMitry
  14. 如何提高思维能力和逻辑能力?
  15. Activity标签设置
  16. 2018 ACM/ICPC 北京赛区网络赛 D 80 Days 线段树
  17. 【未雨绸缪】海南测控天线系统防御台风的措施
  18. 潮水退去 你还是那个让HR离不开的猎头吗
  19. 微信支付回调到底回调了什么?
  20. 计算机电源高效率模式,Windows7的三种电源模式对硬件工作频率的影响

热门文章

  1. HoloLens2开发入门教程
  2. 【4-8】《XML与JSON》——XML、解析XML、SAX、DOM4J、XStream、JSON、Gson、Fastjson
  3. 计算机术语shebang,如何在Windows下使用Apache 2忽略Perl shebang?
  4. 不用再找了,这就是全网最全的异常检测方法总结
  5. matlab异常检测
  6. 让div也可以获得keydown事件
  7. python readlines用法_Python readlines()方法
  8. PHP保存数组到数据库
  9. SpringBoot 整合 JWT 实现 Token 验证
  10. 不能锁定计算机怎么搞,怎么样锁定电脑,或者使电脑不能联网~