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实现点击注册按钮开始读秒倒计时的小例子
May 11 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
Aug 21 Javascript
JavaScript保留关键字汇总
Dec 01 Javascript
详解Node.js 命令行程序开发教程
Jun 07 Javascript
JavaScript实现三级联动效果
Jul 15 Javascript
angular2+node.js express打包部署的实战
Jul 27 Javascript
vue-router 导航钩子的具体使用方法
Aug 31 Javascript
详解layui弹窗父子窗口之间传参数的方法
Jan 16 Javascript
浅谈Vue路由快照实现思路及其问题
Jun 07 Javascript
详解vue添加删除元素的方法
Jun 30 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
Sep 04 Javascript
layui--js控制switch的切换方法
Sep 03 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/09 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
jquery与google map api结合使用 控件,监听器
2010/03/04 Javascript
JavaScript生成GUID的多种算法小结
2013/08/18 Javascript
图片Slider 带左右按钮的js示例
2013/08/30 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
jQuery Masonry瀑布流插件使用方法详解
2017/01/18 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
js实现单张图片平移切换效果
2017/10/11 Javascript
Vue通过URL传参如何控制全局console.log的开关详解
2017/12/07 Javascript
微信小程序 wx.getUserInfo引导用户授权问题实例分析
2020/03/09 Javascript
你不知道的SpringBoot与Vue部署解决方案
2020/11/09 Javascript
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
2017/04/17 Python
Python Socket实现简单TCP Server/client功能示例
2017/08/05 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
2017/11/01 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
购买中国最好的电子产品:Geekbuying
2018/03/13 全球购物
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
linux面试题参考答案(2)
2015/12/06 面试题
Linux面试经常问的文件系统操作命令
2016/10/04 面试题
应届毕业生个人自荐信范文
2013/11/30 职场文书
小学教师寄语大全
2014/04/03 职场文书
幼儿教师寄语集锦
2014/04/03 职场文书
《和田的维吾尔》教学反思
2014/04/14 职场文书
让世界充满爱演讲稿
2014/05/24 职场文书
冰雪公主观后感
2015/06/16 职场文书
学校趣味运动会开幕词
2016/03/04 职场文书
小学语文的各类谚语(70首)
2019/08/15 职场文书
python实现图片批量压缩
2021/04/24 Python
ORM模型框架操作mysql数据库的方法
2021/07/25 MySQL