Javascript冒泡排序算法详解


Posted in Javascript onDecember 03, 2014

比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

function sort(elements){

  for(var i=0;i<elements.length-1;i++){

    for(var j=0;j<elements.length-i-1;j++){

      if(elements[j]>elements[j+1]){

        var swap=elements[j];

        elements[j]=elements[j+1];

        elements[j+1]=swap;

      }

    }

  }

}
var elements = [3, 1, 5, 7, 2, 4, 9, 6, 10, 8];

console.log('before: ' + elements);

sort(elements);

console.log(' after: ' + elements);

 
效率:

时间复杂度:最好:O(n),最坏:O(n^2),平均:O(n^2)。

空间复杂度:O(1)。

稳定性:稳定。

Javascript 相关文章推荐
判断目标是否是window,document,和拥有tagName的Element的代码
May 31 Javascript
Javascript数组的排序 sort()方法和reverse()方法
Jun 04 Javascript
jquery获得option的值和对option进行操作
Dec 13 Javascript
用js+iframe形成页面的一种遮罩效果的具体实现
Dec 31 Javascript
一个实用的图片切换支持点击切换和自动轮播
Sep 09 Javascript
js实现获取当前时间是本月第几周的方法
Aug 11 Javascript
JS获取当前脚本文件的绝对路径
Mar 02 Javascript
js省市县三级联动效果实例
Apr 15 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
Feb 07 Javascript
jQuery实现在新增加的元素上添加事件方法案例分析
Feb 09 Javascript
JS 实现微信扫一扫功能
Sep 14 Javascript
VueCli生产环境打包部署跨域失败的解决
Nov 13 Javascript
Javascript堆排序算法详解
Dec 03 #Javascript
node.js下when.js 的异步编程实践
Dec 03 #Javascript
jquery操作 iframe的方法
Dec 03 #Javascript
使用js实现数据格式化
Dec 03 #Javascript
使用js获取图片原始尺寸
Dec 03 #Javascript
上传文件返回的json数据会被提示下载问题解决方案
Dec 03 #Javascript
使用jQuery实现验证上传图片的格式与大小
Dec 03 #Javascript
You might like
PHP 反射机制实现动态代理的代码
2008/10/22 PHP
VB中的RasEnumConnections函数返回632错误解决方法
2014/07/29 PHP
php匹配字符中链接地址的方法
2014/12/22 PHP
PHP内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
调整小数的格式保留小数点后两位
2014/05/14 Javascript
JavaScript中实现异步编程模式的4种方法
2014/09/24 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
2016/05/30 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
微信小程序组件 contact-button(客服会话按钮)详解及实例代码
2017/01/10 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
EsLint入门学习教程
2017/02/17 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
浅谈Angular路由守卫
2017/08/26 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
2018/02/12 jQuery
浅谈webpack组织模块的原理
2018/03/10 Javascript
微信小程序实现留言板功能
2018/11/02 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
2019/06/20 Javascript
Vue.js数字输入框组件使用方法详解
2019/10/19 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
用python找出那些被“标记”的照片
2017/04/20 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
python微信公众号之关键词自动回复
2018/06/15 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
Sneaker Studio法国:购买运动鞋
2018/06/08 全球购物
俄罗斯电动工具和设备购物网站:Vseinstrumenti.ru
2020/11/12 全球购物
秘书行业自我鉴定范文
2013/12/30 职场文书
《最大的“书”》教学反思
2014/02/14 职场文书
12.4全国法制宣传日活动方案
2014/11/02 职场文书
文案策划岗位职责
2015/02/11 职场文书