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 相关文章推荐
可缩放Reloaded-一个针对可缩放元素的复用组件
Mar 10 Javascript
javascript中的toFixed固定小数位数 简单实例分享
Jul 12 Javascript
js单例模式的两种方案
Oct 22 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
Apr 04 Javascript
javascript中Date()函数在各浏览器中的显示效果
Jun 18 Javascript
全面解析Bootstrap图片轮播效果
Dec 03 Javascript
jquery实现转盘抽奖功能
Jan 06 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
Feb 17 Javascript
详解vue-cli + webpack 多页面实例应用
Apr 25 Javascript
Vue实现双向数据绑定
May 03 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
Nov 28 Javascript
Vue实现一个无限加载列表功能
Nov 13 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
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
PHP实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
PHP+Ajax+JS实现多图上传
2016/05/07 PHP
PHP实现截取中文字符串不出现?号的解决方法
2016/12/29 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
jQuery根据纬度经度查看地图处理程序
2013/05/08 Javascript
js中哈希表的几种用法总结
2014/01/28 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
2014/03/14 Javascript
JS制作手机端自适应缩放显示
2015/06/11 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
2016/05/19 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
2017/04/17 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
原生JS实现Ajax跨域请求flask响应内容
2017/10/24 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
小程序组件之仿微信通讯录的实现代码
2018/09/12 Javascript
vue router返回到指定的路由的场景分析
2020/11/10 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
2021/02/06 Javascript
用Python写一个无界面的2048小游戏
2016/05/24 Python
python matplotlib画图实例代码分享
2017/12/27 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
Python发送邮件的实例代码讲解
2019/10/16 Python
python支持多线程的爬虫实例
2019/12/21 Python
Python解析多帧dicom数据详解
2020/01/13 Python
python 实现弹球游戏的示例代码
2020/11/17 Python
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
美国廉价机票预订网站:Cheapfaremart
2018/04/28 全球购物
法国二手MacBook销售网站:Okamac
2019/03/18 全球购物
Chain Reaction Cycles俄罗斯:世界上最大的在线自行车商店
2019/08/27 全球购物
UNIX文件类型
2013/08/29 面试题
学习党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
党员学习新党章思想汇报
2014/10/25 职场文书
世界遗产导游词
2015/02/13 职场文书
初中毕业生自我评价
2015/03/02 职场文书
公司费用报销管理制度
2015/08/04 职场文书