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 相关文章推荐
jquery提升性能最佳实践小结
Dec 06 Javascript
常见JS效果之图片减速度滚动实现代码
Dec 08 Javascript
JavaScript中的运算符种类及其规则介绍
Sep 26 Javascript
浅谈JavaScript中运算符的优先级
Jul 07 Javascript
jquery中live()方法和bind()方法区别分析
Jun 23 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
Aug 19 Javascript
javascript实现的图片预览功能
Mar 25 Javascript
浅析Vue.js 中的条件渲染指令
Nov 19 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
Nov 26 Javascript
Vue移动端实现图片上传及超过1M压缩上传
Dec 23 Javascript
javascript Canvas动态粒子连线
Jan 01 Javascript
vue 实现图片懒加载功能
Dec 31 Vue.js
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
删除无限级目录与文件代码共享
2006/07/12 PHP
通过table标签,PHP输出EXCEL的实现方法
2013/07/24 PHP
php 启动报错如何解决
2014/01/17 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
php解决约瑟夫环算法实例分析
2019/09/30 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
在IE中调用javascript打开Excel的代码(downmoon原作)
2007/04/02 Javascript
js 多浏览器分别判断代码
2010/04/01 Javascript
JavaScript继承方式实例
2010/10/29 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享
2014/04/11 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
AngularJS Module方法详解
2015/12/08 Javascript
angularjs表格ng-table使用备忘录
2016/03/09 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
JavaScript实现获取远程的html到当前页面中
2017/03/26 Javascript
jquery replace方法去空格
2017/05/08 jQuery
Vue中如何实现轮播图的示例代码
2017/07/27 Javascript
微信小程序之几种常见的弹框提示信息实现详解
2019/07/11 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
docker-py 用Python调用Docker接口的方法
2019/08/30 Python
python实现五子棋游戏(pygame版)
2020/01/19 Python
python实现批处理文件
2020/07/28 Python
Python3爬虫mitmproxy的安装步骤
2020/07/29 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能
2019/04/26 HTML / CSS
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
高级护理实习生自荐信
2013/09/28 职场文书
甜品蛋糕店创业计划书范文
2014/02/06 职场文书
重阳节活动主持词
2015/07/04 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书