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 相关文章推荐
js特殊字符转义介绍
Nov 05 Javascript
Jquery实现$.fn.extend和$.extend函数
Apr 14 Javascript
在JS中a标签加入单击事件屏蔽href跳转页面
Dec 16 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
Mar 09 Javascript
jQuery操作之效果详解
May 19 jQuery
微信小程序promsie.all和promise顺序执行
Oct 27 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
Dec 11 Javascript
JS实现的贪吃蛇游戏案例详解
May 01 Javascript
JS判断数组里是否有重复元素的方法小结
May 21 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
Sep 14 Javascript
微信小程序用canvas画图并分享
Mar 09 Javascript
如何在vue中使用HTML 5 拖放API
Jan 14 Vue.js
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
第八节--访问方式
2006/11/16 PHP
php二分查找二种实现示例
2014/03/12 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
javascript基础知识大集锦(二) 推荐收藏
2011/01/13 Javascript
分享27个jQuery 表单插件集合推荐
2011/04/25 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
2013/07/10 Javascript
仿新浪微博登陆邮箱提示效果的js代码
2013/08/02 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
2014/03/27 Javascript
JavaScript利用正则表达式去除日期中的-
2014/06/09 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
jquery siblings获取同辈元素用法实例分析
2016/07/25 Javascript
AngularJS  ng-table插件设置排序
2016/09/21 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
JavaScript闭包_动力节点Java学院整理
2017/06/27 Javascript
运用jQuery写的验证表单(实例讲解)
2017/07/06 jQuery
Vue.js用法详解
2017/11/13 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
JS实现百度搜索接口及链接功能实例代码
2018/02/02 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
Vue请求JSON Server服务器数据的实现方法
2018/11/02 Javascript
详解vantUI框架在vue项目中的应用踩坑
2018/12/06 Javascript
jQuery 选择器用法基础入门示例
2020/01/04 jQuery
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
浅谈Pytorch torch.optim优化器个性化的使用
2020/02/20 Python
python 读取yaml文件的两种方法(在unittest中使用)
2020/12/01 Python
如何在Canvas中添加事件的方法示例
2019/05/21 HTML / CSS
潘多拉珠宝英国官方网上商店:PANDORA英国
2018/06/12 全球购物
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
花卉与景观设计系大学生求职信
2013/10/01 职场文书
美术教师自我鉴定
2014/02/12 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
高一地理教学工作总结
2015/08/12 职场文书
装修安全责任协议书
2016/03/22 职场文书