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的动态创建表格的插件
Apr 05 Javascript
最短的javascript:地址栏载入脚本代码
Oct 13 Javascript
多种方式实现JS调用后台方法进行数据交互
Aug 20 Javascript
js上传图片及预览功能实例分析
Apr 24 Javascript
Jquery日历插件制作简单日历
Oct 28 Javascript
javascript中利用柯里化函数实现bind方法
Apr 29 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
Dec 23 Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
Jan 05 Javascript
angular中不同的组件间传值与通信的方法
Nov 04 Javascript
基于layui数据表格以及传数据的方式
Aug 19 Javascript
Vue3新特性之在Composition API中使用CSS Modules
Jul 13 Javascript
Vue 电商后台管理项目阶段性总结(推荐)
Aug 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
Array of country list in PHP with Zend Framework
2011/10/17 PHP
学习php设计模式 php实现工厂模式(factory)
2015/12/07 PHP
PHP+Redis开发的书签案例实战详解
2019/07/09 PHP
JavaScript库 开发规则
2009/01/31 Javascript
javascript 设置某DIV区域内的checkbox复选框
2009/11/30 Javascript
一个简单的jQuery插件制作 学习过程及实例
2010/04/25 Javascript
node.js使用require()函数加载模块
2014/11/26 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
2015/04/06 Javascript
js淡入淡出焦点图幻灯片效果代码分享
2015/09/08 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
深入理解ES6的迭代器与生成器
2017/08/19 Javascript
微信小程序switch开关选择器使用详解
2018/01/31 Javascript
使用FileReader API创建Vue文件阅读器组件
2018/04/03 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
Vue3配置axios跨域实现过程解析
2020/11/25 Vue.js
[15:09]DOTA2国际邀请赛采访专栏:Loda
2013/08/06 DOTA
Python SQLite3数据库操作类分享
2014/06/10 Python
Python re模块介绍
2014/11/30 Python
python调用matplotlib模块绘制柱状图
2019/10/18 Python
韩国家庭购物网上商店:Nsmall
2017/05/07 全球购物
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-> (一千零一拾一元整)输出
2015/05/29 面试题
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
学生会宣传部部长竞选演讲稿
2014/04/25 职场文书
演讲稿的格式及范文
2014/08/22 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
某集团股份有限公司委托书样本
2014/09/24 职场文书
公司搬迁通知
2015/04/20 职场文书
学术会议开幕词
2016/03/03 职场文书
2016年领导干部廉政承诺书
2016/03/24 职场文书
python之PySide2安装使用及QT Designer UI设计案例教程
2021/07/26 Python
MySQL学习之基础命令实操总结
2022/03/19 MySQL
Nginx工作模式及代理配置的使用细节
2022/03/21 Servers
Python实现视频自动打码的示例代码
2022/04/08 Python