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 相关文章推荐
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
Aug 13 Javascript
jQuery选择器的工作原理和优化分析
Jul 25 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
Sep 27 Javascript
node.js中的querystring.stringify方法使用说明
Dec 10 Javascript
推荐一款jQuery插件模板
Jan 09 Javascript
Node.js 异步编程之 Callback介绍(一)
Mar 30 Javascript
基于Vue2的移动端开发环境搭建详解
Nov 03 Javascript
DWR3 访问WEB元素的两种方法实例详解
Jan 03 Javascript
jQuery实现可兼容IE6的遮罩功能详解
Sep 19 jQuery
vue非父子组件通信问题及解决方法
Jun 11 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
Nov 27 Vue.js
(开源)微信小程序+mqtt,esp8266温湿度读取
Apr 02 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/07/23 PHP
PHP下10件你也许并不了解的事情
2008/09/11 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
2011/09/20 PHP
php读取本地文件常用函数(fopen与file_get_contents)
2013/09/09 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
2016/05/26 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
2016/09/26 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
简单的无缝滚动程序-仅几行代码
2007/05/08 Javascript
IE6弹出“已终止操作”的解决办法
2010/11/27 Javascript
关于js datetime的那点事
2011/11/15 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
js实现的牛顿摆效果
2015/03/31 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
2016/10/09 Javascript
JS文件上传神器bootstrap fileinput详解
2021/01/28 Javascript
jquery+ajax实现省市区三级联动效果简单示例
2017/01/04 Javascript
javascript实现多张图片左右无缝滚动效果
2017/03/22 Javascript
Angular 作用域scope的具体使用
2017/12/11 Javascript
VSCode配置react开发环境的步骤
2017/12/27 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
2020/05/15 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
[51:00]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Python多进程同步简单实现代码
2016/04/27 Python
python学生信息管理系统
2018/03/13 Python
Python tempfile模块生成临时文件和临时目录
2020/09/30 Python
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
电信营业员自我评价分享
2014/01/17 职场文书
授权委托书样本
2014/04/03 职场文书
社区志愿者活动方案
2014/08/18 职场文书
灵山大佛导游词
2015/02/04 职场文书
综合实践活动报告
2015/02/05 职场文书
Python 文本滚动播放器的实现代码
2021/04/25 Python