冒泡排序、冒泡排序原理、方法
冒泡排序
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);
结果如图:
冒泡排序、冒泡排序原理、方法相关推荐
- Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理
Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理 1. 重载包括:普通方法的重载和构造方法的重载 1 1.1. 横向重载"和"纵向重载"1 1.2. ...
- 《SOA 原理•方法•实践》作者毛新生先生签名售书活动
<SOA 原理•方法•实践>作者毛新生先生签名售书活动 2007年8月24日 北京香格里拉 毛新生先生将在"SOA 架构你的未来"大会现场签名售书 更多详情请访问:ht ...
- 《SOA 原理 方法 实践》作者毛新生先生签名售书活动圆满结束
<SOA 原理 方法 实践>作者毛新生先生签名售书活动圆满结束 8月24日,由互动出版网和博文视点资讯有限公司共同举办的<SOA 原理o方法o实践>作者毛新生先生签名售书活动圆 ...
- python和报表生成工具_报表自动生成工具的原理方法,及热门软件
阅读提示: 文章中与FineReport软件使用的相关内容,基于软件的V7.0旧版本编写,不代表软件最新的使用方式. FineReport最新版免费试用:https://www.finereport. ...
- 杨辉三角-原理方法的由来
杨辉三角的原来(来自百度) 北宋人贾宪约1050年首先使用"贾宪三角"进行高次开方运算, 南宋数学家杨辉在<详解九章算法>(1261年)中,保存了一张宝贵图形--&qu ...
- ndi协议_NDI是什么协议,NDI传输协议技术原理方法
NDI是什么协议,NDI传输协议技术原理方法 NDI是什么协议 NDI就是一种接口传输协议. NDI就是通过IP网络进行超低延时.无损传输.交互控制的标准协议: NDI协议最大的不同是:NDI视频传输 ...
- 冒泡排序的原理、方法
冒泡排序 1.什么是冒泡排序? 冒泡排序是一种简单的排序算法,通过交换排序实现效果,使用与小规模的数据排序. 原理: 把一个乱序的数组,以某种规则(从大到小.从小到大)进行排序,通过比较相邻的元素,两 ...
- Python——冒泡排序(原理剖析)
文章目录 前言 一.冒泡排序概念 二.原理分析 小结 三.代码实现 1.排序方式小------->大 2.排序方式大------->小 总结 前言 我在大学里面主要学习的语言主要是pyth ...
- 冒泡排序的原理,思路,以及算法分析(Java实现)
冒泡排序 如果遇到相等的值不进行交换,那这种排序方式是稳定的排序方式. 1.原理:比较两个相邻的元素,将值大的元素交换到右边 2.思路:依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面. ...
- 冒泡排序java jsp_冒泡排序实现原理
原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将 ...
最新文章
- 微型计算机2013年10月下,微型计算机及接口技术2013年10月真题试题(04732)
- UNITY中使用不安全代码的相关设置
- 批量插入以及数据存在重复就进行更新操作
- .NET Core简介
- keepalived mysql双主架构图_基于keepalived Mysql双主热备配置
- 张一鸣回忆7年创业历程:小民宅里诞生第一版推荐引擎
- 活动策划方案具体流程
- 初识ubuntu 安装steam
- 计算机与材料物理,南京邮电大学材料物理专业
- android badgeview activity不显示,关于BadgeView遇到的一个奇怪的问题和解决办法
- @NotNull 和 @NotEmpty 和@NotBlank 区别
- java设置post超时时间_HttpClient 如何设置超时时间
- jsp页面读取txt乱码
- 学位认证上‘学位网’办理即可
- 浅谈社群运营的2种抽奖玩法
- [多点触控测试]不用app,手机怎么测试屏幕触控点数
- Java编程之华氏和摄氏的转换
- c语言堆、栈、数据段、代码段、bss段的疑惑
- 宝塔linux如何防护,使用宝塔面板的CC***防护策略
- 122412_0529_WORD2013BLO1