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 相关文章推荐
js下判断 iframe 是否加载完成的完美方法
Oct 26 Javascript
js监听输入框值的即时变化onpropertychange、oninput
Jul 13 Javascript
js面向对象设计用{}好还是function(){}好(构造函数)
Oct 23 Javascript
JavaScript网页定位详解
Jan 13 Javascript
js防止DIV布局滚动时闪动的解决方法
Oct 30 Javascript
javascript实现动态改变层大小的方法
May 14 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
Aug 04 Javascript
微信小程序 form组件详解
Oct 25 Javascript
前端开发必知的15个jQuery小技巧
Jan 22 Javascript
微信小程序http连接访问解决方案的示例
Nov 05 Javascript
解决element ui select下拉框不回显数据问题的解决
Feb 20 Javascript
微信小程序生成海报分享朋友圈的实现方法
May 06 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/06/06 PHP
php简单实现发送带附件的邮件
2015/06/10 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
使用Yii2实现主从数据库设置
2016/11/20 PHP
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
js计算两个时间之间天数差的实例代码
2013/11/19 Javascript
浅谈js中的延迟执行和定时执行
2016/05/31 Javascript
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
2016/12/14 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
vue + axios get下载文件功能
2019/09/25 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
JavaScript实现网页留言板功能
2020/11/23 Javascript
vue打开其他项目页面并传入数据详解
2020/11/25 Vue.js
Python的socket模块源码中的一些实现要点分析
2016/06/06 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
Python3将数据保存为txt文件的方法
2019/09/12 Python
Python中实现输入超时及如何通过变量获取变量名
2020/01/18 Python
使用Django实现把两个模型类的数据聚合在一起
2020/03/28 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
车贷收入证明范本
2014/01/09 职场文书
创先争优制度
2014/01/21 职场文书
幼儿园教师培训方案
2014/02/04 职场文书
开学典礼感言
2014/02/16 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
个人职业及收入证明
2014/10/13 职场文书
小学生差生评语
2014/12/29 职场文书
班主任自我评价范文
2015/03/11 职场文书
西安事变观后感
2015/06/12 职场文书
红色电影观后感
2015/06/18 职场文书
离婚民事起诉状
2015/08/03 职场文书
手把手教你从零开始react+antd搭建项目
2021/06/03 Javascript
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python
Java 超详细讲解ThreadLocal类的使用
2022/04/07 Java/Android