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 相关文章推荐
判断一个变量是数组Array类型的方法
Sep 16 Javascript
JS实现动态生成表格并提交表格数据向后端
Nov 25 Javascript
JavaScript实现Base64编码转换
Apr 23 Javascript
详解自动生成博客目录案例
Dec 09 Javascript
JS回调函数简单用法示例
Feb 09 Javascript
jquery实现轮播图效果
Feb 13 Javascript
Web制作验证码功能实例代码
Jun 19 Javascript
Webpack之tree-starking 解析
Sep 11 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
Nov 26 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
Jun 05 Javascript
小程序自动化测试的示例代码
Aug 11 Javascript
js实现移动端图片滑块验证功能
Sep 29 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
php对二维数组进行排序的简单实例
2013/12/19 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
使用jQuery实现的网页版的个人简历(可换肤)
2013/04/19 Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
2014/06/10 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
JS中call/apply、arguments、undefined/null方法详解
2016/02/15 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
jsp 自动编译机制详细介绍
2016/12/01 Javascript
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
2019/10/23 jQuery
Javascript原型链及instanceof原理详解
2020/05/25 Javascript
Python代码的打包与发布详解
2014/07/30 Python
Python标准库之多进程(multiprocessing包)介绍
2014/11/25 Python
python实现查找两个字符串中相同字符并输出的方法
2015/07/11 Python
windows系统下Python环境搭建教程
2017/03/28 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
对命令行模式与python交互模式介绍
2018/05/12 Python
PyCharm 2020 激活到 2100 年的教程
2020/03/25 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
Python实现GIF图倒放
2020/07/16 Python
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
实现向右循环移位
2014/07/31 面试题
中专生职业生涯规划书范文
2013/12/29 职场文书
创新比赛获奖感言
2014/02/13 职场文书
销售员求职个人的自我评价
2014/02/19 职场文书
信息与计算科学专业推荐信
2014/02/23 职场文书
英语专业职业生涯规划范文
2014/03/05 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
小学思想品德教学反思
2016/02/24 职场文书
公历12个月名称的由来
2022/04/12 杂记
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
2022/04/18 MySQL