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进行原型prototype扩展后带来的for in遍历问题
Feb 07 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
Apr 02 Javascript
javascript验证身份证完全方法具体实现
Nov 18 Javascript
基于jquery异步传输json数据格式实例代码
Nov 23 Javascript
js+jquery实现图片裁剪功能
Jan 02 Javascript
jQuery+easyui中的combobox实现下拉框特效
Feb 27 Javascript
jquery.fastLiveFilter.js实现输入自动过滤的方法
Aug 11 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
Oct 11 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
Jul 10 Javascript
简单了解Javscript中兄弟ifream的方法调用
Jun 17 Javascript
JavaScript 继承 封装 多态实现及原理详解
Jul 29 Javascript
详解vue中v-on事件监听指令的基本用法
Jul 22 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
Ajax PHP分页演示
2007/01/02 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
JavaScript 检测浏览器和操作系统的脚本
2008/12/26 Javascript
jQuery图片预加载 等比缩放实现代码
2011/10/04 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
2012/08/09 Javascript
js加入收藏以及使用Jquery更改透明度
2014/01/26 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
JS动态加载当前时间的方法
2015/02/09 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
2016/10/14 Javascript
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
js中Object.defineProperty()方法的不详解
2018/07/09 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
小程序实现分类页
2019/07/12 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
[52:20]DOTA2-DPC中国联赛正赛 SAG vs XGBO3 第一场 3月5日
2021/03/11 DOTA
Python struct.unpack
2008/09/06 Python
Python的垃圾回收机制深入分析
2014/07/16 Python
Python OS模块常用函数说明
2015/05/23 Python
Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】
2019/03/18 Python
django框架模板中定义变量(set variable in django template)的方法分析
2019/06/24 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
jupyter notebook的安装与使用详解
2020/05/18 Python
SKECHERS斯凯奇中国官网:来自美国的运动休闲品牌
2018/11/14 全球购物
运动会广播稿80字
2014/01/23 职场文书
应届生面试求职信
2014/07/02 职场文书
产品委托授权书范本
2014/09/16 职场文书
工作失职检讨书
2015/01/26 职场文书
Python之基础函数案例详解
2021/08/30 Python
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle