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类继承机制的原理分析
Sep 12 Javascript
JavaScript delete 属性的使用
Oct 08 Javascript
css+js实现部分区域高亮可编辑遮罩层
Mar 04 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
Jan 08 Javascript
通过隐藏iframe实现无刷新上传文件操作
Mar 16 Javascript
js 获取今天以及过去日期
Apr 11 Javascript
vue页面跳转后返回原页面初始位置方法
Feb 11 Javascript
js计算两个日期间的天数月的实例代码
Sep 20 Javascript
javascript中floor使用方法总结
Feb 02 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
Sep 05 Javascript
JavaScript中的全局属性与方法深入解析
Jun 14 Javascript
Openlayers绘制地图标注
Sep 28 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 Xdebug 调试扩展的安装与使用.
2010/03/13 PHP
php切割页面div内容的实现代码分享
2012/07/31 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
基于jquery实现的自动补全功能
2015/03/12 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
JavaScript与HTML的结合方法详解
2015/11/23 Javascript
javascript实现保留两位小数的多种方法
2015/12/18 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
2016/06/13 Javascript
mac中利用NVM管理不同node版本的方法详解
2017/11/08 Javascript
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
JavaScript对象拷贝与赋值操作实例分析
2018/12/10 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
2019/09/26 Javascript
vue路由缓存的几种实现方式小结
2020/02/02 Javascript
vue实现输入框自动跳转功能
2020/05/20 Javascript
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
基于Python的关键字监控及告警
2017/07/06 Python
python中is与双等于号“==”的区别示例详解
2017/11/21 Python
python生成九宫格图片
2018/11/19 Python
Python中的None与 NULL(即空字符)的区别详解
2020/09/24 Python
python搜索算法原理及实例讲解
2020/11/18 Python
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
次世代生活态度:Hypebeast
2018/07/05 全球购物
全球领先的全景影像品牌:Insta360
2019/08/21 全球购物
毕业生的自我评价范文
2013/12/31 职场文书
医院实习接收函
2014/01/12 职场文书
水利学院求职自荐书
2014/02/01 职场文书
班风口号
2014/06/18 职场文书
学生上课说话检讨书
2014/10/25 职场文书
合作协议书范本
2014/10/25 职场文书
2015年学校管理工作总结
2015/07/20 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS
Redis入门基础常用操作命令整理
2022/06/01 Redis