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 相关文章推荐
Javascript 八进制转义字符(8进制)
Apr 08 Javascript
js单向链表的具体实现实例
Jun 21 Javascript
不使用浏览器运行javascript代码的方法
Jul 24 Javascript
原生js实现class的添加和删除简单代码
Jul 12 Javascript
利用yarn实现一个webpack+react种子
Oct 25 Javascript
获取select的value、text值的简单示例(jquery与javascript)
Dec 07 Javascript
Cookies 和 Session的详解及区别
Apr 21 Javascript
关于angular js_$watch监控属性和对象详解
Apr 24 Javascript
基于Vue制作组织架构树组件
Dec 06 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
Jun 30 Javascript
Vue js 的生命周期(看了就懂)(推荐)
Mar 29 Javascript
深入了解js原型模式
May 30 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字符串操作针对负值的判断分析
2016/07/28 PHP
Yii框架学习笔记之session与cookie简单操作示例
2019/04/30 PHP
JS 动态获取节点代码innerHTML分析 [IE,FF]
2009/11/30 Javascript
js的一些常用方法小结
2011/06/29 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
uploadify多文件上传参数设置技巧
2015/11/16 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
jQuery实现的简单悬浮层功能完整实例
2017/01/23 Javascript
整理关于Bootstrap排版的慕课笔记
2017/03/29 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
vuejs实现本地数据的筛选分页功能思路详解
2017/11/15 Javascript
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
基于Vue el-autocomplete 实现类似百度搜索框功能
2019/10/25 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
Python 自动安装 Rising 杀毒软件
2009/04/24 Python
Python实现的数据结构与算法之链表详解
2015/04/22 Python
简单实现python收发邮件功能
2018/01/05 Python
Python实现OpenCV的安装与使用示例
2018/03/30 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
带你认识Django
2019/01/15 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
DjangoWeb使用Datatable进行后端分页的实现
2020/05/18 Python
python3中确保枚举值代码分析
2020/12/02 Python
css3 实现圆形旋转倒计时
2018/02/24 HTML / CSS
html5中的input新属性range使用记录
2014/09/05 HTML / CSS
岗位职责的定义
2013/11/10 职场文书
博士生入学考试推荐信
2013/11/17 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
投标售后服务承诺书
2015/04/29 职场文书
浪漫婚礼主持词开场白
2015/11/24 职场文书
新学期开学寄语2016
2015/12/04 职场文书
未来,这5大方向都很适合创业
2019/07/22 职场文书