JS实现最简单的冒泡排序算法


Posted in Javascript onFebruary 15, 2017

1. 算法步骤

比较相邻的元素。如果第一个比第二个大,就交换他们两个。

对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。

针对所有的元素重复以上的步骤,除了最后一个。

持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

2. 动图演示

JS实现最简单的冒泡排序算法

3. 什么时候最快

当输入的数据已经是正序时(都已经是正序了,我还要你冒泡排序有何用啊)。

4. 什么时候最慢

当输入的数据是反序时(写一个 for 循环反序输出数据不就行了,干嘛要用你冒泡排序呢,我是闲的吗)。

5. JavaScript 代码实现

function bubbleSort(arr) {
 var len = arr.length;
 for (var i = 0; i < len; i++) {
  for (var j = 0; j < len - 1 - i; j++) {
   if (arr[j] > arr[j+1]) {  // 相邻元素两两对比
    var temp = arr[j+1];  // 元素交换
    arr[j+1] = arr[j];
    arr[j] = temp;
   }
  }
 }
 return arr;
}

以上所述是小编给大家介绍的JS实现最简单的冒泡排序算法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
Jul 31 Javascript
在js文件中写el表达式取不到值的原因及解决方法
Dec 23 Javascript
jquery得到iframe src属性值的方法
Sep 25 Javascript
jquery表单验证插件formValidator使用方法
Apr 01 Javascript
简单实现jQuery进度条轮播实例代码
Jun 20 Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
Oct 10 Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
Oct 11 Javascript
探索Javascript中this的奥秘
Dec 11 Javascript
jquery pagination分页插件使用详解(后台struts2)
Jan 22 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
Apr 11 Javascript
vue通过点击事件读取音频文件的方法
May 30 Javascript
关于layui toolbar和template的结合使用方法
Sep 19 Javascript
javascript设计模式之单体模式学习笔记
Feb 15 #Javascript
JavaScript中的toString()和toLocaleString()方法的区别
Feb 15 #Javascript
javascript设计模式之模块模式学习笔记
Feb 15 #Javascript
javascript设计模式之策略模式学习笔记
Feb 15 #Javascript
BootStrap实现带关闭按钮功能
Feb 15 #Javascript
Jil,高效的json序列化和反序列化库
Feb 15 #Javascript
Bootstrap模态框使用详解
Feb 15 #Javascript
You might like
日本十大科幻动漫 宇宙骑士垫底,第一已成经典
2020/03/04 日漫
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
php获取POST数据的三种方法实例详解
2016/12/20 PHP
JSON 入门指南 想了解json的朋友可以看下
2009/08/26 Javascript
url 特殊字符 传递参数解决方法
2010/01/01 Javascript
jQuery操作checkbox选择(list/table)
2013/04/07 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
jquery插件EasyUI中form表单提交实例分享
2016/01/11 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
bootstrap vue.js实现tab效果
2017/02/07 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
2017/03/30 Javascript
bootstrap轮播图示例代码分享
2017/05/17 Javascript
vue使用keep-alive实现数据缓存不刷新
2017/10/21 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
2018/06/27 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
2018/08/09 jQuery
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
2018/10/07 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
[05:04]DOTA2上海特级锦标赛主赛事第二日TOP10
2016/03/04 DOTA
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
Python实现选择排序
2017/06/04 Python
Python any()函数的使用方法
2019/10/28 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
Python 脚本实现淘宝准点秒杀功能
2019/11/13 Python
python中format函数如何使用
2020/06/22 Python
美国排名第一的葡萄酒俱乐部:Firstleaf Wine Club
2020/01/02 全球购物
货代行业个人求职简历的自我评价
2013/10/22 职场文书
成品仓管员岗位职责
2013/12/11 职场文书
老干部工作汇报材料
2014/10/28 职场文书
2016元旦晚会主持词
2015/07/01 职场文书
2019年中,最受大众欢迎的6本新书
2019/08/07 职场文书
MySQL sql模式设置引起的问题
2022/05/15 MySQL
详解ZABBIX监控ESXI主机的问题
2022/06/21 Servers