冒泡排序

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. 冒泡排序的原理、方法

    冒泡排序 1.什么是冒泡排序? 冒泡排序是一种简单的排序算法,通过交换排序实现效果,使用与小规模的数据排序. 原理: 把一个乱序的数组,以某种规则(从大到小.从小到大)进行排序,通过比较相邻的元素,两 ...

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

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

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

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

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

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

最新文章

  1. 微型计算机2013年10月下,微型计算机及接口技术2013年10月真题试题(04732)
  2. UNITY中使用不安全代码的相关设置
  3. 批量插入以及数据存在重复就进行更新操作
  4. .NET Core简介
  5. keepalived mysql双主架构图_基于keepalived Mysql双主热备配置
  6. 张一鸣回忆7年创业历程:小民宅里诞生第一版推荐引擎
  7. 活动策划方案具体流程
  8. 初识ubuntu 安装steam
  9. 计算机与材料物理,南京邮电大学材料物理专业
  10. android badgeview activity不显示,关于BadgeView遇到的一个奇怪的问题和解决办法
  11. @NotNull 和 @NotEmpty 和@NotBlank 区别
  12. java设置post超时时间_HttpClient 如何设置超时时间
  13. jsp页面读取txt乱码
  14. 学位认证上‘学位网’办理即可
  15. 浅谈社群运营的2种抽奖玩法
  16. [多点触控测试]不用app,手机怎么测试屏幕触控点数
  17. Java编程之华氏和摄氏的转换
  18. c语言堆、栈、数据段、代码段、bss段的疑惑
  19. 宝塔linux如何防护,使用宝塔面板的CC***防护策略
  20. 122412_0529_WORD2013BLO1

热门文章

  1. Selenium 测试用例编写
  2. 【862. 和至少为 K 的最短子数组】
  3. 匹配字符串 正则表达式
  4. php的数组排序方法,PHP 数组排序方法总结 推荐收藏
  5. html页面字迹模糊,css3字体可以模糊吗?
  6. 机器学习回归算法代码汇总
  7. 【虚幻引擎UE】UE4/UE5 功能性插件推荐及使用介绍 2
  8. LeetCode 90. 子集 II【数组,回溯算法,排序去重】
  9. SSM框架下log4j配置说明
  10. Vite HMR原理解析