js交换排序 冒泡排序算法(Javascript版)


Posted in Javascript onOctober 04, 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面向对象(极简主义法minimalist approach)
Jul 17 Javascript
最好用的省市二级联动 原生js实现你值得拥有
Sep 22 Javascript
javascript获取form里的表单元素的示例代码
Feb 14 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
Nov 16 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
Nov 23 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
Sep 25 Javascript
详解ECMAScript typeof用法
Jul 25 Javascript
微信小程序实现无限滚动列表
May 29 Javascript
如何自动化部署项目?折腾服务器之旅~
Apr 16 Javascript
详解vue项目中调用百度地图API使用方法
Apr 25 Javascript
js实现简单图片拖拽效果
Feb 22 Javascript
JS中forEach()、map()、every()、some()和filter()的用法
May 11 Javascript
Javascript获取当前时间函数和时间操作小结
Oct 01 #Javascript
js事件绑定快捷键以ctrl+k为例
Sep 30 #Javascript
显示今天的日期js代码(阳历和农历)
Sep 30 #Javascript
gridview生成时如何去掉style属性中的border-collapse
Sep 30 #Javascript
javascript学习笔记(四)function函数部分
Sep 30 #Javascript
javascript学习笔记(三)BOM和DOM详解
Sep 30 #Javascript
让人蛋疼的JavaScript语法特性
Sep 30 #Javascript
You might like
adodb与adodb_lite之比较
2006/12/31 PHP
php动态生成JavaScript代码
2009/03/09 PHP
PHP弹出提示框并跳转到新页面即重定向到新页面
2014/01/24 PHP
PHP安全下载文件的方法
2016/04/07 PHP
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
学习ExtJS TextField常用方法
2009/10/07 Javascript
关于JavaScript中var声明变量作用域的推断
2010/12/16 Javascript
JS关键字变色实现思路及代码
2013/02/21 Javascript
原生javascript实现图片按钮切换
2015/01/12 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
2015/08/10 Javascript
JavaScript获取function所有参数名的方法
2015/10/30 Javascript
Bootstrap Fileinput文件上传组件用法详解
2016/05/10 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
实现一个完整的Node.js RESTful API的示例
2017/09/29 Javascript
jquery自定义显示消息数量
2017/12/19 jQuery
详解vue通过NGINX部署在子目录或者二级目录实践
2018/09/03 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
2019/05/26 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
简单了解vue中的v-if和v-show的区别
2019/10/08 Javascript
js实现转动骰子模型
2019/10/24 Javascript
javascript实现弹出层效果
2019/12/10 Javascript
[00:12]DAC2018 no[o]ne亮相SOLO赛 他是否如他的id一样无人可挡?
2018/04/06 DOTA
python3编写C/S网络程序实例教程
2014/08/25 Python
人机交互程序 python实现人机对话
2017/11/14 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
Django 路由层URLconf的实现
2019/12/30 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
python TCP包注入方式
2020/05/05 Python
电子专业求职信
2014/06/19 职场文书
小学生美德少年事迹材料
2014/08/24 职场文书
完整版商业计划书
2014/09/15 职场文书
2015年试用期工作总结
2014/12/12 职场文书
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android
15个值得收藏的JavaScript函数
2021/09/15 Javascript