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 cookies操作集合
Apr 12 Javascript
情人节专属 纯js脚本1k大小的3D玫瑰效果
Feb 11 Javascript
深入理解javascript的执行顺序
Apr 04 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
Aug 15 Javascript
基于JavaScript代码实现自动生成表格
Jun 15 Javascript
jQuery和JavaScript节点插入元素的方法对比
Nov 18 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
Apr 25 Javascript
jfinal与bootstrap的登出实战详解
Nov 27 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
Sep 07 Javascript
Three.js中矩阵和向量的使用教程
Mar 19 Javascript
NUXT SSR初级入门笔记(小结)
Dec 16 Javascript
JS变量提升及函数提升实例解析
Sep 03 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 时间日期操作实战
2011/08/26 PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
浅谈php中mysql与mysqli的区别分析
2013/06/10 PHP
解析crontab php自动运行的方法
2013/06/24 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
2014/06/27 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
2014/07/08 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
2015/02/16 PHP
PHP实现根据时间戳获取周几的方法
2016/02/26 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
javascript 必知必会之closure
2009/09/21 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
AngularJS基础 ng-srcset 指令简单示例
2016/08/03 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
2016/09/28 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
2019/12/29 Javascript
javascript浅层克隆、深度克隆对比及实例解析
2020/02/09 Javascript
浅谈python中列表、字符串、字典的常用操作
2017/09/19 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
Django ORM filter() 的运用详解
2020/05/14 Python
keras-siamese用自己的数据集实现详解
2020/06/10 Python
香港永安旅游网:Wing On Travel
2017/04/10 全球购物
学习雷锋做美德少年寄语大全
2014/04/09 职场文书
毕业生实习期转正自我鉴定
2014/09/26 职场文书
公司前台接待岗位职责
2015/04/03 职场文书
小型婚礼主持词
2015/06/30 职场文书
60条职场经典语录,总有一条能触动你的心
2019/08/21 职场文书
Java实现二维数组和稀疏数组之间的转换
2021/06/27 Java/Android
MySQL之select、distinct、limit的使用
2021/11/11 MySQL
36个正则表达式(开发效率提高80%)
2021/11/17 Javascript
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android