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 相关文章推荐
Array对象方法参考
Oct 03 Javascript
JS Timing
Apr 21 Javascript
jQuery DIV弹出效果实现代码
Jul 03 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
Oct 23 Javascript
改变checkbox默认选中状态及取值的实现代码
May 26 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
Jun 24 Javascript
[原创]JavaScript语法高亮插件highlight.js用法详解【附highlight.js本站下载】
Nov 01 Javascript
AngularJS中scope的绑定策略实例分析
Oct 30 Javascript
Vue入门之数量加减运算操作示例
Dec 11 Javascript
JS数组方法concat()用法实例分析
Jan 18 Javascript
js+canvas实现刮刮奖功能
Sep 13 Javascript
微信小程序实现拼图小游戏
Oct 22 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
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
建议大家看下JavaScript重要知识更新
2007/07/08 Javascript
项目实践之javascript技巧
2007/12/06 Javascript
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
基于jQuery的ajax功能实现web service的json转化
2009/08/29 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
2013/10/22 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
jquery和js实现对div的隐藏和显示方法
2014/09/26 Javascript
NodeJS制作爬虫全过程(续)
2014/12/22 NodeJs
JS实现可点击展开与关闭的左侧广告代码
2015/09/02 Javascript
js点击文本框后才加载验证码实例代码
2015/10/20 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
深入浅析JavaScript中的constructor
2016/04/19 Javascript
JS实现获取剪贴板内容的方法
2016/06/21 Javascript
Vue自定义指令介绍(2)
2016/12/08 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
解决使用vue.js路由后失效的问题
2018/03/17 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
2018/06/28 Javascript
webpack@v4升级踩坑(小结)
2018/10/08 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
如何利用node转发请求详解
2020/09/17 Javascript
[02:41]DOTA2英雄基础教程 冥魂大帝
2014/01/16 DOTA
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
python实现类之间的方法互相调用
2018/04/29 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
2019/08/06 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
Python综合应用名片管理系统案例详解
2020/01/03 Python
早会主持词
2014/03/17 职场文书
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
秋季运动会开幕词
2015/01/28 职场文书
2015年国际护士节演讲稿
2015/03/18 职场文书
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android