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 相关文章推荐
js 调整select 位置的函数
Feb 21 Javascript
JavaScript 类似flash效果的立体图片浏览器
Feb 08 Javascript
jQuery 图片切换插件(代码比较少)
May 07 Javascript
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
Aug 14 Javascript
javascript中验证大写字母、数字和中文
Jan 15 Javascript
IE下通过a实现location.href 获取referer的值
Sep 04 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
Jan 24 Javascript
Angular设置title信息解决SEO方面存在问题
Aug 19 Javascript
利用jquery实现实时更新歌词的方法
Jan 06 Javascript
vue bootstrap小例子一枚
Jun 09 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
Sep 21 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
Jul 28 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获取远程图片的两种 CURL方式和sockets方式获取远程图片
2011/11/07 PHP
大家都应该掌握的PHP关联数组使用技巧
2015/12/25 PHP
PHP的Json中文处理解决方案
2016/09/29 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
javascript 匿名函数的理解(透彻版)
2010/01/28 Javascript
jqeury eval将字符串转换json的方法
2011/01/20 Javascript
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
IE中JS跳转丢失referrer问题的2个解决方法
2014/07/18 Javascript
Javascript添加监听与删除监听用法详解
2014/12/19 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
JQuery实现带排序功能的权限选择实例
2015/05/18 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
2016/02/25 Javascript
js轮盘抽奖实例分析
2020/04/17 Javascript
js/jq仿window文件夹框选操作插件
2017/03/08 Javascript
详解在React中跨组件分发状态的三种方法
2018/08/09 Javascript
详解在vue-cli项目下简单使用mockjs模拟数据
2018/10/19 Javascript
详解服务端预渲染之Nuxt(介绍篇)
2019/04/07 Javascript
JS定义函数的几种常用方法小结
2019/05/23 Javascript
JavaScript实现旋转木马轮播图
2020/03/16 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
python之yield表达式学习
2014/09/02 Python
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
Python实现决策树并且使用Graphviz可视化的例子
2019/08/09 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
基于Python的Jenkins的二次开发操作
2020/05/12 Python
python Scrapy框架原理解析
2021/01/04 Python
Html5原创俄罗斯方块(基于canvas)
2019/01/07 HTML / CSS
大学生军训自我评价分享
2013/11/09 职场文书
人力资源专员岗位职责
2014/01/30 职场文书
社区志愿者活动方案
2014/08/18 职场文书
教师查摆问题自查报告
2014/10/11 职场文书
人民的好儿女观后感
2015/06/18 职场文书
爱国影片观后感
2015/06/18 职场文书
一文弄懂MySQL索引创建原则
2022/02/28 MySQL